2015-05-29 8 views
0

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

this - мое демо в 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")); 
    } 

ответ

1

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

Существует хороший способ SignOut по этой ссылке: Claims Aware MVC4 App using WIF Identity and Access tool in .Net 4.5 Part 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()); 



     } 

 Смежные вопросы

  • Нет связанных вопросов^_^