Выйти в ADFS2.0 с помощью приложения WIF

я следовал эта ссылка, чтобы понять приложение WIF с ADFS 2.0, где я установил ADFS2.0 и образец приложения (в IIS) на одном компьютере, теперь я могу войти в свое образец приложения с именем пользователя и паролем Active Directory. , но проблема в том, что хотя я выхожу из примера приложения, он перенаправляет меня на страницу login.aspx, но когда я нажимаю кнопку «Назад» в браузере и обновляю, я все еще могу войти в систему, это означает, что срок действия моего сеанса не истекает в моем приложении. мне также нужно очистить зарегистрированный сеанс в ADFS? Если да, то как я могу это сделать? Я использовал инструмент «FederatedPassiveSignInStatus», который, как я предполагал, выйдет из системы как из приложения, так и из ADFS.

это моя демонстрация в формате gif.

<wif:FederatedPassiveSignInStatus ID="FederatedPassiveSignInStatus1" 
        runat="server" OnSignedOut="OnFederatedPassiveSignInStatusSignedOut" 
        SignInButtonType="link" FederatedPassiveSignOut="true"  SignOutAction="FederatedPassiveSignOut" />

protected void OnFederatedPassiveSignInStatusSignedOut(object sender, EventArgs e)
    {
        WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;

        string signoutEndpoint = "https://test-server.test.localhost/ClaimsAwareWebAppWithManagedSTS/Login1.aspx";  // This can be stored in your configuration app settings
        string signoutUrl = WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(signoutEndpoint, authModule.Realm, null);

        WSFederationAuthenticationModule.FederatedSignOut(new Uri(signoutUrl), new Uri("https://test-server.test.localhost/ClaimsAwareWebAppWithManagedSTS/Default.aspx"));
    }

person Bibek Gautam    schedule 29.05.2015    source источник


Ответы (1)


Похоже, что куки удалены из браузера. Однако файл cookie, созданный службой STS, не является таковым. Необходимо убедиться, что STS правильно получает запрос на выход, как это должно быть в случае использования FederatedSignOut.

По этой ссылке есть хороший способ выхода: Приложение Claims Aware MVC4 с использованием инструмента WIF Identity and Access в .Net 4.5, часть II

 if (HttpContext.Request.IsAuthenticated)

        {

            WSFederationAuthenticationModule instance = FederatedAuthentication.WSFederationAuthenticationModule;

            instance.SignOut(false);

            SignOutRequestMessage request = new SignOutRequestMessage(new Uri(instance.Issuer), instance.Realm);

            return new RedirectResult(request.WriteQueryString());



        }
person user3208369    schedule 30.05.2015