public async Task <IActionResult> Logout() { await HttpContext.SignOutAsync(IdentityServerConstants.DefaultCookieAuthenticationScheme); // delete authentication cookie await _signInManager.SignOutAsync(); return(Ok("LoggedOut")); }
public async Task <IActionResult> Logout(LogoutInputModel model) { // build a model so the logged out page knows what to display var vm = await BuildLoggedOutViewModelAsync(model.LogoutId); if (User?.Identity.IsAuthenticated == true) { // delete local authentication cookie await _signInManager.SignOutAsync(); // raise the logout event await _events.RaiseAsync(new UserLogoutSuccessEvent(User.GetSubjectId(), User.GetDisplayName())); } // check if we need to trigger sign-out at an upstream identity provider if (vm.TriggerExternalSignout) { // build a return URL so the upstream provider will redirect back // to us after the user has logged out. this allows us to then // complete our single sign-out processing. string url = Url.Action("Logout", new { logoutId = vm.LogoutId }); // this triggers a redirect to the external provider for sign-out return(SignOut(new AuthenticationProperties { RedirectUri = url }, vm.ExternalAuthenticationScheme)); } return(View("LoggedOut", vm)); }
public async Task <IActionResult> Logout() { await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); return(RedirectToAction(nameof(HomeController.Index), "Home")); }
public async Task <IActionResult> Logout(LogoutViewModel model) { var vm = await _account.BuildLoggedOutViewModelAsync(model.LogoutId); if (vm.TriggerExternalSignout) { string url = Url.Action("Logout", new { logoutId = vm.LogoutId }); try { // hack: try/catch to handle social providers that throw await HttpContext.Authentication.SignOutAsync(vm.ExternalAuthenticationScheme, new AuthenticationProperties { RedirectUri = url }); } catch (NotSupportedException) // this is for the external providers that don't have signout { } catch (InvalidOperationException) // this is for Windows/Negotiate { } } // delete authentication cookie await _signInManager.SignOutAsync(); return(View("LoggedOut", vm)); }
public async Task <IActionResult> OnPostAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } RequirePassword = await _userManager.HasPasswordAsync(user); if (RequirePassword) { if (!await _userManager.CheckPasswordAsync(user, Input.Password)) { ModelState.AddModelError(string.Empty, "Incorrect password."); return(Page()); } } var result = await _userManager.DeleteAsync(user); var userId = await _userManager.GetUserIdAsync(user); if (!result.Succeeded) { throw new InvalidOperationException($"Unexpected error occurred deleting user with ID '{userId}'."); } await _signInManager.SignOutAsync(); _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId); return(Redirect("~/")); }
public async Task <RedirectToPageResult> OnGet() { await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); return(RedirectToPage("Login")); }
public async Task <IActionResult> logout(string returnUrl = null) { await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); AlertMessageCollection.AddSuccessAlert($"You have successfully signed out of {WebSiteOptions.WebSiteTitle}."); return(RedirectToLocal(returnUrl)); }
public async Task <ActionResponseResult> SignOut() { return(await _signInManager.SignOutAsync() .ContinueWith((o) => { return new ActionResponseResult() { Code = 200 }; })); }
public async Task <IActionResult> OnPost(string returnUrl = null) { await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); if (returnUrl != null) { return(LocalRedirect(returnUrl)); } else { return(RedirectToPage()); } }
public async Task <IActionResult> Logout(LogoutViewModel model) { var idp = User?.FindFirst(JwtClaimTypes.IdentityProvider)?.Value; if (idp != null && idp != IdentityServerConstants.LocalIdentityProvider) { if (model.LogoutId == null) { // if there's no current logout context, we need to create one // this captures necessary info from the current logged in user // before we signout and redirect away to the external IdP for signout model.LogoutId = await _interaction.CreateLogoutContextAsync(); } string url = "/Account/Logout?logoutId=" + model.LogoutId; try { // hack: try/catch to handle social providers that throw await HttpContext.SignOutAsync(idp, new AuthenticationProperties { RedirectUri = url }); } catch (Exception ex) { _logger.LogCritical(ex.Message); } } // delete authentication cookie // await HttpContext.SignOutAsync(); await _signInManager.SignOutAsync(); // set this so UI rendering sees an anonymous user HttpContext.User = new ClaimsPrincipal(new ClaimsIdentity()); // get context information (client name, post logout redirect URI and iframe for federated signout) var logout = await _interaction.GetLogoutContextAsync(model.LogoutId); return(Redirect(logout?.PostLogoutRedirectUri)); }
public async Task SignOut() { await _signInManager.SignOutAsync(); }
public async Task <IActionResult> SignOut() { await _signInManager.SignOutAsync(); return(Redirect("/")); }
public async Task <IActionResult> Logout() { await signInManager.SignOutAsync(); return(RedirectToAction(nameof(HomeController.Index), "Home")); }