Exemple #1
0
 /// <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);
        }
Exemple #3
0
 /// <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;
 }
Exemple #4
0
 /// <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);
        }
Exemple #6
0
 /// <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;
 }
Exemple #8
0
 /// <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;
 }
Exemple #9
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="authUserData">授权用户数据</param>
 public IdentityAuthClaimReader(IAuthUserData <IdT, UserT> authUserData = null)
 {
     this.authUserData = authUserData;
 }