/// <summary> /// 构建退出视图模型 /// </summary> /// <param name="logoutId"></param> /// <returns></returns> private async Task <Idr4LogoutViewModel> CreateIdr4LogoutViewModelAsync(string logoutId) { var vm = new Idr4LogoutViewModel { LogoutId = logoutId, ShowLogoutPrompt = AccountOptions.ShowLogoutPrompt }; var user = _httpContextAccessor.HttpContext.User; if (user?.Identity.IsAuthenticated != true) { //没有授权展示已退出相关业务处理页面 vm.ShowLogoutPrompt = false; } var context = await _identityServerInteractionService.GetLogoutContextAsync(logoutId); if (context?.ShowSignoutPrompt == false) { //用户处理退出 安全退出到退出业务处理页面 vm.ShowLogoutPrompt = false; } if (!vm.ShowLogoutPrompt) { string clientid = context.ClientIds.FirstOrDefault(); var clientModel = await _clientStore.FindClientByIdAsync(clientid); vm.PostLogoutRedirectUri = clientModel?.PostLogoutRedirectUris.FirstOrDefault(); vm.SignOutIFrameUrl = context.SignOutIFrameUrl; } return(vm); }
public async Task <IActionResult> Logout(Idr4LogoutViewModel model) { var vm = await _identityServerInteractionService.GetLogoutContextAsync(model.LogoutId); return(View()); }
public IActionResult LoggedOut(Idr4LogoutViewModel model) { return(View(model)); }