|
|
@ -76,25 +76,33 @@ namespace Volo.Abp.Account.Web.Pages.Account |
|
|
|
|
|
|
|
|
public virtual async Task<IActionResult> OnPostAsync() |
|
|
public virtual async Task<IActionResult> OnPostAsync() |
|
|
{ |
|
|
{ |
|
|
await CheckSelfRegistrationAsync(); |
|
|
try |
|
|
|
|
|
|
|
|
if (IsExternalLogin) |
|
|
|
|
|
{ |
|
|
{ |
|
|
var externalLoginInfo = await SignInManager.GetExternalLoginInfoAsync(); |
|
|
await CheckSelfRegistrationAsync(); |
|
|
if (externalLoginInfo == null) |
|
|
|
|
|
|
|
|
if (IsExternalLogin) |
|
|
|
|
|
{ |
|
|
|
|
|
var externalLoginInfo = await SignInManager.GetExternalLoginInfoAsync(); |
|
|
|
|
|
if (externalLoginInfo == null) |
|
|
|
|
|
{ |
|
|
|
|
|
Logger.LogWarning("External login info is not available"); |
|
|
|
|
|
return RedirectToPage("./Login"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await RegisterExternalUserAsync(externalLoginInfo, Input.EmailAddress); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
{ |
|
|
{ |
|
|
Logger.LogWarning("External login info is not available"); |
|
|
await RegisterLocalUserAsync(); |
|
|
return RedirectToPage("./Login"); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
await RegisterExternalUserAsync(externalLoginInfo, Input.EmailAddress); |
|
|
return Redirect(ReturnUrl ?? "~/"); //TODO: How to ensure safety? IdentityServer requires it however it should be checked somehow!
|
|
|
} |
|
|
} |
|
|
else |
|
|
catch (BusinessException e) |
|
|
{ |
|
|
{ |
|
|
await RegisterLocalUserAsync(); |
|
|
Alerts.Danger(e.Message); |
|
|
|
|
|
return Page(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return Redirect(ReturnUrl ?? "~/"); //TODO: How to ensure safety? IdentityServer requires it however it should be checked somehow!
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
protected virtual async Task RegisterLocalUserAsync() |
|
|
protected virtual async Task RegisterLocalUserAsync() |
|
|
|