return ReturnUrl when ExternalLogin fails (#186)

Addresses #97
This commit is contained in:
Jass Bagga 2017-12-14 10:29:36 -08:00 committed by GitHub
parent eb74ea32f1
commit e7749b9ccc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View File

@ -63,12 +63,13 @@ namespace Company.WebApplication1.Pages.Account
if (remoteError != null) if (remoteError != null)
{ {
ErrorMessage = $"Error from external provider: {remoteError}"; ErrorMessage = $"Error from external provider: {remoteError}";
return RedirectToPage("./Login"); return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
} }
var info = await _signInManager.GetExternalLoginInfoAsync(); var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null) if (info == null)
{ {
return RedirectToPage("./Login"); ErrorMessage = "Error loading external login information.";
return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
} }
// Sign in the user with this external login provider if the user already has a login. // Sign in the user with this external login provider if the user already has a login.
@ -104,7 +105,8 @@ namespace Company.WebApplication1.Pages.Account
var info = await _signInManager.GetExternalLoginInfoAsync(); var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null) if (info == null)
{ {
throw new ApplicationException("Error loading external login information during confirmation."); ErrorMessage = "Error loading external login information during confirmation.";
return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
} }
if (ModelState.IsValid) if (ModelState.IsValid)

View File

@ -273,12 +273,13 @@ namespace Company.WebApplication1.Identity.Controllers
if (remoteError != null) if (remoteError != null)
{ {
ErrorMessage = $"Error from external provider: {remoteError}"; ErrorMessage = $"Error from external provider: {remoteError}";
return RedirectToAction(nameof(Login)); return RedirectToAction(nameof(Login), new { ReturnUrl = returnUrl });
} }
var info = await _signInManager.GetExternalLoginInfoAsync(); var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null) if (info == null)
{ {
return RedirectToAction(nameof(Login)); ErrorMessage = "Error loading external login information.";
return RedirectToAction(nameof(Login), new { ReturnUrl = returnUrl });
} }
// Sign in the user with this external login provider if the user already has a login. // Sign in the user with this external login provider if the user already has a login.
@ -311,7 +312,8 @@ namespace Company.WebApplication1.Identity.Controllers
var info = await _signInManager.GetExternalLoginInfoAsync(); var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null) if (info == null)
{ {
throw new ApplicationException("Error loading external login information during confirmation."); ErrorMessage = "Error loading external login information during confirmation.";
return RedirectToAction(nameof(Login), new { ReturnUrl = returnUrl });
} }
if (ModelState.IsValid) if (ModelState.IsValid)