public virtual async Task <RocketLoginResult> Login(UserLoginInfo login) { await CheckLocalLoginAsync(); ValidateLoginInfo(login); await ReplaceEmailToUsernameOfInputIfNeeds(login); return(GetRocketLoginResult(await SignInManager.PasswordSignInAsync( login.UserNameOrEmailAddress, login.Password, login.RememberMe, true ))); }
public virtual async Task <RocketLoginResult> CheckPassword(UserLoginInfo login) { ValidateLoginInfo(login); await ReplaceEmailToUsernameOfInputIfNeeds(login); var identityUser = await UserManager.FindByNameAsync(login.UserNameOrEmailAddress); if (identityUser == null) { return(new RocketLoginResult(LoginResultType.InvalidUserNameOrPassword)); } return(GetRocketLoginResult(await SignInManager.CheckPasswordSignInAsync(identityUser, login.Password, true))); }
protected virtual void ValidateLoginInfo(UserLoginInfo login) { if (login == null) { throw new ArgumentException(nameof(login)); } if (login.UserNameOrEmailAddress.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(login.UserNameOrEmailAddress)); } if (login.Password.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(login.Password)); } }
protected virtual async Task ReplaceEmailToUsernameOfInputIfNeeds(UserLoginInfo login) { if (!ValidationHelper.IsValidEmailAddress(login.UserNameOrEmailAddress)) { return; } var userByUsername = await UserManager.FindByNameAsync(login.UserNameOrEmailAddress); if (userByUsername != null) { return; } var userByEmail = await UserManager.FindByEmailAsync(login.UserNameOrEmailAddress); if (userByEmail == null) { return; } login.UserNameOrEmailAddress = userByEmail.UserName; }