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); }
/// <summary> /// 构造最初单例的方法,在此处把日志的方法注册到事件上 /// </summary> public VolunteerHelper(AppUserIdentityClaims claims) { Claims = claims; database = DatabaseContext.GetInstance(); logger = LogHelper.GetInstance(Claims); //Success += logger.Succeeded; //Failure += logger.Failed; }
public async Task <VolunteerHelper> GetInstanceAsync(AppUserIdentityClaims claims)//不知道这个run()需不需要加入参数,未经测试 { Task <VolunteerHelper> helper = Task.Run(() => { return(GetInstance(claims)); }); return(await helper); }
public static VolunteerHelper GetInstance(AppUserIdentityClaims claims = null) { if (helper == null) { lock (helperlocker) { if (helper == null) { helper = new VolunteerHelper(claims); } } } return(helper); }
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)); }