using Microsoft.AspNetCore.Http;
using Znyc.CloudCar.Auth.Policys;
using Znyc.CloudCar.Utility.Extensions;
namespace Znyc.CloudCar.Auth.HttpContextUser
{
public class AspNetUser : IHttpContextUser
{
private readonly IHttpContextAccessor _accessor;
public AspNetUser(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
///
/// 用户Id
///
public virtual long Id
{
get
{
System.Security.Claims.Claim id = _accessor?.HttpContext?.User?.FindFirst(Claims.UserId);
if (id != null && id.Value.NotNull())
{
return id.Value.ObjectToLong();
}
return 0;
}
}
///
/// 权限Id
///
public string RoleId
{
get
{
System.Security.Claims.Claim name = _accessor?.HttpContext?.User?.FindFirst(Claims.RoleId);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
///
/// 昵称
///
public string UserName
{
get
{
System.Security.Claims.Claim name = _accessor?.HttpContext?.User?.FindFirst(Claims.UserName);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
///
/// OpenId
///
public string OpenId
{
get
{
System.Security.Claims.Claim name = _accessor?.HttpContext?.User?.FindFirst(Claims.OpenId);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
///
/// UnionId
///
public string UnionId
{
get
{
System.Security.Claims.Claim name = _accessor?.HttpContext?.User?.FindFirst(Claims.UnionId);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
///
/// SessionKey
///
public string SessionKey
{
get
{
System.Security.Claims.Claim name = _accessor?.HttpContext?.User?.FindFirst(Claims.SessionKey);
if (name != null && name.Value.NotNull())
{
return name.Value;
}
return "";
}
}
}
}