@ -1,10 +1,13 @@
using System ;
using System ;
using System.Threading.Tasks ;
using Microsoft.AspNetCore.Identity ;
using Microsoft.AspNetCore.Mvc ;
using Volo.Abp.Account.Localization ;
using Volo.Abp.Account.Settings ;
using Volo.Abp.Account.Web.Areas.Account.Controllers.Models ;
using Volo.Abp.AspNetCore.Mvc ;
using Volo.Abp.Identity ;
using Volo.Abp.Settings ;
using Volo.Abp.Validation ;
using SignInResult = Microsoft . AspNetCore . Identity . SignInResult ;
using UserLoginInfo = Volo . Abp . Account . Web . Areas . Account . Controllers . Models . UserLoginInfo ;
@ -21,17 +24,23 @@ namespace Volo.Abp.Account.Web.Areas.Account.Controllers
{
private readonly SignInManager < IdentityUser > _ signInManager ;
private readonly IdentityUserManager _ userManager ;
private readonly ISettingProvider _ settingProvider ;
public AccountController ( SignInManager < IdentityUser > signInManager , IdentityUserManager userManager )
public AccountController ( SignInManager < IdentityUser > signInManager , IdentityUserManager userManager , ISettingProvider settingProvider )
{
LocalizationResource = typeof ( AccountResource ) ;
_ signInManager = signInManager ;
_ userManager = userManager ;
_ settingProvider = settingProvider ;
}
[HttpPost]
[Route("login")]
public virtual async Task < AbpLoginResult > Login ( UserLoginInfo login )
{
await CheckLocalLoginAsync ( ) ;
ValidateLoginInfo ( login ) ;
await ReplaceEmailToUsernameOfInputIfNeeds ( login ) . ConfigureAwait ( false ) ;
@ -133,5 +142,13 @@ namespace Volo.Abp.Account.Web.Areas.Account.Controllers
throw new ArgumentNullException ( nameof ( login . Password ) ) ;
}
}
private async Task CheckLocalLoginAsync ( )
{
if ( ! await _ settingProvider . IsTrueAsync ( AccountSettingNames . EnableLocalLogin ) . ConfigureAwait ( false ) )
{
throw new UserFriendlyException ( L [ "LocalLoginDisabledMessage" ] ) ;
}
}
}
}