using Microsoft.AspNetCore.Http;
namespace Admin.Core.Common.Auth
{
///
/// 用户信息
///
public class User : IUser
{
private readonly IHttpContextAccessor _accessor;
public User(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
///
/// 用户Id
///
public long Id
{
get
{
var id = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.UserId);
if (id != null && id.Value.NotNull())
{
return id.Value.ToLong();
}
return 0;
}
}
///
/// 用户名
///
public string Name
{
get
{
var name = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.UserName);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
///
/// 姓名
///
public string RealName
{
get
{
var name = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.UserRealName);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
}
///
/// Claim属性
///
public static class ClaimAttributes
{
///
/// 用户Id
///
public const string UserId = "id";
///
/// 用户名
///
public const string UserName = "na";
///
/// 姓名
///
public const string UserRealName = "rna";
///
/// 登录日志Id
///
public const string UserLoginLogId = "llid";
}
}