|
|
|
@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc; |
|
|
|
using Volo.Abp.Account.Web.Areas.Account.Controllers.Models; |
|
|
|
using Volo.Abp.AspNetCore.Mvc; |
|
|
|
using Volo.Abp.Identity; |
|
|
|
using Volo.Abp.Validation; |
|
|
|
using SignInResult = Microsoft.AspNetCore.Identity.SignInResult; |
|
|
|
using UserLoginInfo = Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo; |
|
|
|
|
|
|
|
@ -33,6 +34,8 @@ namespace Volo.Abp.Account.Web.Areas.Account.Controllers |
|
|
|
{ |
|
|
|
ValidateLoginInfo(login); |
|
|
|
|
|
|
|
await ReplaceEmailToUsernameOfInputIfNeeds(login); |
|
|
|
|
|
|
|
return GetAbpLoginResult(await _signInManager.PasswordSignInAsync( |
|
|
|
login.UserNameOrEmailAddress, |
|
|
|
login.Password, |
|
|
|
@ -56,6 +59,28 @@ namespace Volo.Abp.Account.Web.Areas.Account.Controllers |
|
|
|
return GetAbpLoginResult(await _signInManager.CheckPasswordSignInAsync(identityUser, login.Password, true)); |
|
|
|
} |
|
|
|
|
|
|
|
protected virtual async Task ReplaceEmailToUsernameOfInputIfNeeds(UserLoginInfo login) |
|
|
|
{ |
|
|
|
if (!ValidationHandler.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; |
|
|
|
} |
|
|
|
|
|
|
|
private static AbpLoginResult GetAbpLoginResult(SignInResult result) |
|
|
|
{ |
|
|
|
if (result.IsLockedOut) |
|
|
|
|