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; } /// <summary> /// 用户Id /// </summary> 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; } } /// <summary> /// 权限Id /// </summary> 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 ""; } } /// <summary> /// 昵称 /// </summary> 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 ""; } } /// <summary> /// OpenId /// </summary> 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 ""; } } /// <summary> /// UnionId /// </summary> 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 ""; } } /// <summary> /// SessionKey /// </summary> 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 ""; } } } }