mirror of https://github.com/abpframework/abp
parent
8448b81df2
commit
e56d49ed37
@ -0,0 +1,10 @@
|
|||||||
|
namespace Volo.Abp.Identity;
|
||||||
|
|
||||||
|
public class IdentitySessionConsts
|
||||||
|
{
|
||||||
|
public static int MaxDeviceLength { get; set; } = 128;
|
||||||
|
|
||||||
|
public static int MaxClientIdLength { get; set; } = 64;
|
||||||
|
|
||||||
|
public static int MaxIpAddressesLength { get; set; } = 256;
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
using System;
|
||||||
|
using Volo.Abp.Domain.Repositories;
|
||||||
|
|
||||||
|
namespace Volo.Abp.Identity;
|
||||||
|
|
||||||
|
public interface IIdentitySessionRepository : IBasicRepository<IdentitySession, Guid>
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,81 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Volo.Abp.Domain.Entities;
|
||||||
|
|
||||||
|
namespace Volo.Abp.Identity;
|
||||||
|
|
||||||
|
public class IdentitySession : BasicAggregateRoot<Guid>
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Web, CLI, STUDIO, ...
|
||||||
|
/// </summary>
|
||||||
|
public virtual string Device { get; protected set; }
|
||||||
|
|
||||||
|
public virtual Guid? TenantId { get; protected set; }
|
||||||
|
|
||||||
|
public virtual Guid UserId { get; protected set; }
|
||||||
|
|
||||||
|
public virtual string ClientId { get; set; }
|
||||||
|
|
||||||
|
public virtual string IpAddresses { get; protected set; }
|
||||||
|
|
||||||
|
public virtual DateTime SignedIn { get; protected set; }
|
||||||
|
|
||||||
|
public virtual DateTime? LastAccessed { get; protected set; }
|
||||||
|
|
||||||
|
protected IdentitySession()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public IdentitySession(
|
||||||
|
Guid id,
|
||||||
|
string device,
|
||||||
|
Guid userId,
|
||||||
|
Guid? tenantId,
|
||||||
|
string clientId,
|
||||||
|
string ipAddresses,
|
||||||
|
DateTime signedIn,
|
||||||
|
DateTime? lastAccessed)
|
||||||
|
{
|
||||||
|
Id = id;
|
||||||
|
Device = device;
|
||||||
|
UserId = userId;
|
||||||
|
TenantId = tenantId;
|
||||||
|
ClientId = clientId;
|
||||||
|
IpAddresses = ipAddresses;
|
||||||
|
SignedIn = signedIn;
|
||||||
|
LastAccessed = lastAccessed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSignedInTime(DateTime signedIn)
|
||||||
|
{
|
||||||
|
SignedIn = signedIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateLastAccessedTime(DateTime? lastAccessed)
|
||||||
|
{
|
||||||
|
LastAccessed = lastAccessed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetIpAddresses(IEnumerable<string> ipAddresses)
|
||||||
|
{
|
||||||
|
IpAddresses = JoinAsString(ipAddresses);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<string> GetIpAddresses()
|
||||||
|
{
|
||||||
|
return GetArrayFromString(IpAddresses);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string JoinAsString(IEnumerable<string> list)
|
||||||
|
{
|
||||||
|
var serialized = string.Join(",", list);
|
||||||
|
return serialized.IsNullOrWhiteSpace() ? null : serialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string[] GetArrayFromString(string str)
|
||||||
|
{
|
||||||
|
return str?.Split(",", StringSplitOptions.RemoveEmptyEntries) ?? Array.Empty<string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
|
||||||
|
using Volo.Abp.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace Volo.Abp.Identity.EntityFrameworkCore;
|
||||||
|
|
||||||
|
public class EfCoreIdentitySessionRepository : EfCoreRepository<IIdentityDbContext, IdentitySession, Guid>, IIdentitySessionRepository
|
||||||
|
{
|
||||||
|
public EfCoreIdentitySessionRepository(IDbContextProvider<IIdentityDbContext> dbContextProvider)
|
||||||
|
: base(dbContextProvider)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
using Volo.Abp.Domain.Repositories.MongoDB;
|
||||||
|
using Volo.Abp.MongoDB;
|
||||||
|
|
||||||
|
namespace Volo.Abp.Identity.MongoDB;
|
||||||
|
|
||||||
|
public class MongoIdentitySessionRepository : MongoDbRepository<IAbpIdentityMongoDbContext, IdentitySession, Guid>, IIdentitySessionRepository
|
||||||
|
{
|
||||||
|
public MongoIdentitySessionRepository(IMongoDbContextProvider<IAbpIdentityMongoDbContext> dbContextProvider)
|
||||||
|
: base(dbContextProvider)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue