public async Task <ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return(RedirectToAction("Login")); } // Sign in the user with this external login provider if the user already has a login var result = await _signInService.ExternalSignInAsync(loginInfo, isPersistent : false); switch (result) { case SignInStatus.Success: if (returnUrl == "/o/oauth2/auth") { returnUrl = "/"; } return(RedirectToLocal(returnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false })); case SignInStatus.Failure: default: // If the user does not have an account, then prompt the user to create an account return(RedirectToAction("ExternalLoginConfirmation", new { returnUrl = returnUrl })); } }
public async Task <ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await _authenticationService.GetExternalLoginInfoAsync(); if (loginInfo == null) { return(RedirectToAction("Login")); } var result = await _signInService.ExternalSignInAsync(loginInfo, isPersistent : false); if (result == SignInStatus.Success) { return(RedirectToAction("Index", "Admin")); } ViewBag.ReturnUrl = returnUrl; ViewBag.LoginProvider = loginInfo.Login.LoginProvider; ViewBag.Avatar = loginInfo.ExternalIdentity.FindFirstValue("urn:QQ:avatar"); return(View("ExternaRegister", new LoginEditModel { NickName = loginInfo.DefaultUserName })); }