public async Task <LoginDescriptor> LoginAsync(string username, string password) { var loginDescriptor = new LoginDescriptor(); var account = await _accountDBService.SelectAccountByUserNameAsync(username); if (account == null) { loginDescriptor.Result = LoginResult.AccountNotFound; return(loginDescriptor); } if (account.Locked) { loginDescriptor.Result = LoginResult.AccountLocked; return(loginDescriptor); } var encryptResult = _encryptionService.Encrypt(password, account.Salt); if (account.PasswordHash != encryptResult.Hash) { loginDescriptor.Result = LoginResult.InvaildPassword; return(loginDescriptor); } loginDescriptor.Result = LoginResult.Successful; loginDescriptor.AccountId = account.AccountId; return(loginDescriptor); }
public static LoginAuthenticationBuilder AddLinkedLogin <TUserManager, TLinkedUserManager, TId>( this LoginAuthenticationBuilder builder, Action <LoginAuthenticationBuilder> externalLoginConfigure) where TUserManager : class, IUserManager <TId> where TLinkedUserManager : class, ILinkedUserManager { var externalLoginBuilder = new LoginAuthenticationBuilder(builder.Services); externalLoginConfigure(externalLoginBuilder); foreach (var kv in externalLoginBuilder) { var desc = new LoginDescriptor(kv.Key, kv.Value.Type, kv.Value.args); builder.AddLogin <LinkedLogin <TId> >(desc.Name, desc); } builder.Services.TryAddTransient <IUserManager <TId>, TUserManager>(); builder.Services.TryAddTransient <ILinkedUserManager, TLinkedUserManager>(); return(builder); }
public LinkedLogin( LoginDescriptor externalLoginDescriptor, IServiceProvider serviceProvider, ILinkedUserManager linkedUserManager, IUserManager <TUserId> userManager, IUsernameFormatter usernameFormatter = null) : base(userManager, usernameFormatter) { if (externalLoginDescriptor == null) { throw new ArgumentNullException(nameof(externalLoginDescriptor)); } _externalLoginType = externalLoginDescriptor.Type; _externalLoginName = externalLoginDescriptor.Name; _externalLoginArguments = externalLoginDescriptor.Arguments; _linkedUserManager = linkedUserManager ?? throw new ArgumentNullException(nameof(linkedUserManager)); _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); }