/// <summary> /// 构造方法 /// </summary> /// <param name="userVali">用户验证</param> /// <param name="authUserData">授权用户数据</param> /// <param name="httpContext">Http上下文访问</param> /// <param name="appConfig">应用配置</param> public IdentityJwtAuth(IUserVali <UserT> userVali, IAuthUserData <UserT> authUserData, IHttpContextAccessor httpContext, IAppConfiguration appConfig) { this.userVali = userVali; this.httpContext = httpContext; this.authUserData = authUserData; if (appConfig == null) { this.appConfig = PlatformTool.AppConfig; } else { this.appConfig = appConfig; } }
/// <summary> /// 保存用户信息并获取证件单元集合 /// </summary> /// <param name="user">用户信息</param> /// <param name="authUserData">身份用户数据</param> /// <returns>证件单元集合</returns> public static IList <Claim> SaveUserInfoGetClaims <UserT>(UserT user, IAuthUserData <UserT> authUserData) where UserT : BasicUserInfo { if (authUserData == null) { throw new NullReferenceException("身份用户数据(authUserData)不能为null"); } var claims = new List <Claim>(20); claims.Add(ClaimTypes.NameIdentifier, user.Id.ToString()); claims.Add(ClaimTypes.Name, user.Name); claims.Add("code", user.Code); claims.Add("loginId", user.LoginId); claims.Add("loginTime", DateTime.Now.ToFullFixedDateTime()); authUserData.SetExtraToClaimsData(claims, user); return(claims); }
/// <summary> /// 构造方法 /// </summary> /// <param name="userVali">用户验证</param> /// <param name="authUserData">授权用户数据</param> /// <param name="httpContext">Http上下文访问</param> public IdentityJwtAuth(IUserVali <IdT, UserT> userVali, IAuthUserData <IdT, UserT> authUserData, IHttpContextAccessor httpContext) { this.userVali = userVali; this.httpContext = httpContext; this.authUserData = authUserData; }
/// <summary> /// 构造方法 /// </summary> /// <param name="userVali">用户验证</param> /// <param name="authUserData">授权用户数据</param> public IdentityJwtAuth(IUserVali <IdT, UserT> userVali, IAuthUserData <IdT, UserT> authUserData) { this.userVali = userVali; this.authUserData = authUserData; }
/// <summary> /// 从证件单元集合里获取用户数据 /// </summary> /// <typeparam name="UserT">用户类型</typeparam> /// <param name="claims">证件单元集合</param> /// <param name="authUserData">身份授权用户数据</param> /// <returns>用户</returns> public static UserT GetUserDataFromClaims <UserT>(IEnumerable <Claim> claims, IAuthUserData <UserT> authUserData) where UserT : BasicUserInfo { if (authUserData == null) { throw new NullReferenceException("身份用户数据(authUserData)不能为null"); } var user = authUserData.CreateUser(); user.Id = Convert.ToInt32(claims.Get(ClaimTypes.NameIdentifier)); user.Name = claims.Get(ClaimTypes.Name); user.Code = claims.Get("code"); user.LoginId = claims.Get("loginId"); var loginTimeStr = claims.Get("loginTime"); if (!string.IsNullOrWhiteSpace(loginTimeStr)) { DateTime loginTime; if (DateTime.TryParse(loginTimeStr, out loginTime)) { user.LoginTime = loginTime; } } authUserData.SetExtraToUserData(user, claims); return(user); }
/// <summary> /// 构造方法 /// </summary> /// <param name="httpContext">Http上下文访问</param> /// <param name="authUserData">授权用户数据</param> public IdentityAuthClaimReader(IHttpContextAccessor httpContext, IAuthUserData <IdT, UserT> authUserData) { this.httpContext = httpContext; this.authUserData = authUserData; }
/// <summary> /// 构造方法 /// </summary> /// <param name="userVali">用户验证</param> /// <param name="authUserData">授权用户数据</param> public IdentityClaimAuthBase(IUserVali <UserT> userVali, IAuthUserData <UserT> authUserData) : base(userVali) { this.authUserData = authUserData; }
/// <summary> /// 构造方法 /// </summary> /// <param name="userVali">用户验证</param> /// <param name="authUserData">授权用户数据</param> /// <param name="httpContext">Http上下文访问</param> public IdentityCookieAuth(IUserVali <UserT> userVali, IAuthUserData <UserT> authUserData, IHttpContextAccessor httpContext) : base(userVali, authUserData) { this.httpContext = httpContext; }
/// <summary> /// 构造方法 /// </summary> /// <param name="authUserData">授权用户数据</param> public IdentityAuthClaimReader(IAuthUserData <IdT, UserT> authUserData = null) { this.authUserData = authUserData; }