Hi,
Yes, it is.
Can I use your send security code of multifactor authentication page as it is by bypassing password.
yes, you can.
you can customize the login page to send and validate the security code(remove password input).
[ExposeServices(typeof(LoginModel))]
[Dependency(ReplaceServices = true)]
public class MyCustomLoginModel : OpenIddictSupportedLoginModel
{
protected string ClientId {get;set;}
[BindProperty]
public OptLoginInputModel OptLoginInput { get; set; }
public MyCustomLoginModel(IAuthenticationSchemeProvider schemeProvider, IOptions<AbpAccountOptions> accountOptions, IAbpRecaptchaValidatorFactory recaptchaValidatorFactory, IAccountExternalProviderAppService accountExternalProviderAppService, ICurrentPrincipalAccessor currentPrincipalAccessor, IOptions<IdentityOptions> identityOptions, IOptionsSnapshot<reCAPTCHAOptions> reCaptchaOptions, AbpOpenIddictRequestHelper openIddictRequestHelper) : base(schemeProvider, accountOptions, recaptchaValidatorFactory, accountExternalProviderAppService, currentPrincipalAccessor, identityOptions, reCaptchaOptions, openIddictRequestHelper)
{
}
public override async Task<IActionResult> OnGetAsync()
{
var openIddictRequest = await OpenIddictRequestHelper.GetFromReturnUrlAsync(base.ReturnUrl);
ClientId = openIddictRequest.ClientId;
return await base.OnGetAsync();
}
public override async Task<IActionResult> OnPostAsync(string action)
{
await IdentityOptions.SetAsync();
//This is a very simple example
var user = await UserManager.FindByEmailAsync(OptLoginInput.UserNameOrEmailAddress);
// Validate the code
if(await xxxService.ValidOptCodeAsync(user, OptLoginInput.OptCode))
{
await SignInManager.SignInAsync(user, OptLoginInput.RememberMe);
}else{
.....
}
// The original logic
}
}
public class OptLoginInputModel
{
[Required]
[DynamicStringLength(typeof(IdentityUserConsts), nameof(IdentityUserConsts.MaxEmailLength))]
public string UserNameOrEmailAddress { get; set; }
[Required]
public string OptCode { get; set; }
public bool RememberMe { get; set; }
}
Hi,
please configure the MVC root URL.
Configure<AppUrlOptions>(options =>
{
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
options.Applications["Angular"].RootUrl = configuration["App:AngularUrl"];
options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
options.Applications["Angular"].Urls[AccountUrlNames.EmailConfirmation] = "account/email-confirmation";
});
Hi,
We fixed the problem and will release version 8.3.2 soon. Your ticket was refunded.
Hi,
I will confirm it and get back to you.
Hi,
How do I reproduce this problem, could you please share the full steps or a test project? thanks.
shiwei.liang@volosoft.com
Hi,
There is some discussion here; It will not affect the operation of the application. even if font couldn't load project won't crash it'll continue with default font. https://abp.io/support/questions/7604/Offline-Website-NoWorking