Pergunta

Estou escrevendo um aplicativo ASP.NET que usa o Windows Identity Foundation. Meu aplicativo ASP.NET usa autenticação baseada em reivindicações com redirecionamento passivo para um serviço de token de segurança. Isso significa que, quando um usuário acessa o aplicativo, ele é redirecionado automaticamente para o serviço de token de segurança, onde recebe um token de segurança que os identifica no aplicativo.

No ASP.NET, os tokens de segurança são armazenados como cookies.

Quero ter algo em que o usuário possa clicar no meu aplicativo que excluirá o cookie e redirecioná -los para o serviço de token de segurança para obter um novo token. Em resumo, facilite o login e o login como outro usuário. Eu tento excluir o cookie contendo token em código, mas ele persiste de alguma forma.

Como removo o token para que o usuário possa fazer login novamente e obter um novo token?

Foi útil?

Solução

Eu encontrei a solução. Para dizer sucintamente:

   Dim smartWsFederationAuthenticationModule As  _
        Microsoft.IdentityModel.Web.WSFederationAuthenticationModule = _
        HttpContext.Current.ApplicationInstance.Modules("WSFederationAuthenticationModule")
    smartWsFederationAuthenticationModule.SignOut(True)

Veja aqui para obter mais informações: http://garrettvlieger.com/blog/2010/03/refreshing-claimes-in-a-wif-claimes-warare-application/

Vejo também que posso obter alças para algumas outras partes da estrutura do WIF, isso também foi. Definitivamente vale a pena ler.

Outras dicas

Os cookies são um pouco estranhos. Eles são gerenciados pelo navegador e não há "método" para excluí -los. Basta excluí -los dos objetos de solicitação ou resposta no lado do servidor não os remove do navegador no lado do cliente.

Para "excluir" um cookie, você precisa definir sua data de validade para o passado.

Ver: http://msdn.microsoft.com/en-us/library/ms178195.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top