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 ""; } } } }