Назад | Перейти на главную страницу

Выйти через ADFS с SAML

Я реализовал SSO с помощью ADFS3. У меня есть кнопка выхода для выхода, и она отлично работает с моими пассивными конечными точками ws-federation. При выходе из системы я перенаправляю пользователя на страницу logout.aspx, и там я написал код при загрузке страницы как

WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;

SignOutRequestMessage signOutRequestMessage = new SignOutRequestMessage(new Uri(authModule.Issuer), authModule.Realm);
            String queryString = signOutRequestMessage.WriteQueryString();
            Response.Redirect(queryString);

Одно из приложений использует SAML, поэтому я создал конечную точку потребителя утверждения SAML. Поэтому, когда я открываю это приложение и нажимаю кнопку выхода, возникает ошибка, и когда я просматриваю журнал событий для ADFS, я вижу

Encountered error during federation passive request. 

Additional Data 

Protocol Name: 
wsfed 

Relying Party: 


Exception details: 
Microsoft.IdentityServer.RequestFailedException: MSIS7055: Not all SAML session participants logged out properly. It is recommended to close your browser.
   at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSamlLogoutResponse(SamlContext samlContext, Boolean partialLogout, Boolean& logoutComplete)
   at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.ProcessSignOut(SamlContext samlContext, String redirectUri, List`1 iFrameUris, Boolean partialLogout)
   at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.PipelineInitiatedSignout(WrappedHttpListenerContext httpContext, String redirectUri)
   at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolSignoutRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
   at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
   at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)