Exemple #1
0
        internal static AppUserIdentityClaims Create(AppUser user, AppUser holder)
        {
            AppUserIdentityClaims claims;

            if (user == null)//user应该是owner的意思
            {
                claims = new AppUserIdentityClaims
                {
                    _holder          = holder,
                    _isAuthenticated = false
                };
            }
            else
            {
                claims = new AppUserIdentityClaims
                {
                    _user            = user,
                    _holder          = holder,
                    _roles           = from r in user.Roles select r.RoleEnum,
                    _isAuthenticated = true
                };
            }

            return(claims);
        }
Exemple #2
0
 /// <summary>
 /// 构造最初单例的方法,在此处把日志的方法注册到事件上
 /// </summary>
 public VolunteerHelper(AppUserIdentityClaims claims)
 {
     Claims   = claims;
     database = DatabaseContext.GetInstance();
     logger   = LogHelper.GetInstance(Claims);
     //Success += logger.Succeeded;
     //Failure += logger.Failed;
 }
Exemple #3
0
        public async Task <VolunteerHelper> GetInstanceAsync(AppUserIdentityClaims claims)//不知道这个run()需不需要加入参数,未经测试
        {
            Task <VolunteerHelper> helper = Task.Run(() =>
            {
                return(GetInstance(claims));
            });

            return(await helper);
        }
Exemple #4
0
 public static VolunteerHelper GetInstance(AppUserIdentityClaims claims = null)
 {
     if (helper == null)
     {
         lock (helperlocker)
         {
             if (helper == null)
             {
                 helper = new VolunteerHelper(claims);
             }
         }
     }
     return(helper);
 }
Exemple #5
0
        public AppUserIdentityClaims CreateClaims(string userName, string password, string holderName = "")
        {
            var user = database.Users.SingleOrDefault(u => u.AccountName == userName);

            if (SecurityHelper.CheckPassword(password: password, salt: user?.Salt, hashedPassword: user?.HashedPassword))
            {
                var holder = database.Users.SingleOrDefault(u => u.AccountName == holderName);
                if (holder != null)
                {
                    return(AppUserIdentityClaims.Create(user, holder));
                }
                return(AppUserIdentityClaims.Create(user, user)); //若Holder不为有效值则Holder被赋值为User
            }
            return(AppUserIdentityClaims.Create(null, user));
        }