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)
{
ErrorMessage = $"Error from external provider: {remoteError}";
return RedirectToPage("./Login");
return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
}
var info = await _signInManager.GetExternalLoginInfoAsync();
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.
@ -104,7 +105,8 @@ namespace Company.WebApplication1.Pages.Account
var info = await _signInManager.GetExternalLoginInfoAsync();
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)

View File

@ -273,12 +273,13 @@ namespace Company.WebApplication1.Identity.Controllers
if (remoteError != null)
{
ErrorMessage = $"Error from external provider: {remoteError}";
return RedirectToAction(nameof(Login));
return RedirectToAction(nameof(Login), new { ReturnUrl = returnUrl });
}
var info = await _signInManager.GetExternalLoginInfoAsync();
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.
@ -311,7 +312,8 @@ namespace Company.WebApplication1.Identity.Controllers
var info = await _signInManager.GetExternalLoginInfoAsync();
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)