Windows Identity Foundation: Como obter um novo token de segurança no ASP.NET
-
24-09-2019 - |
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?
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.