Windows Identity Foundation:如何在ASP.net中获取新的安全令牌

我正在编写一个使用Windows Identity Foundation的ASP.net应用程序。 我的ASP.net应用程序使用基于声明的身份验证与被动重定向到安全令牌服务。 这意味着当用户访问应用程序时,它们会自动重定向到安全令牌服务,在那里他们会收到一个安全令牌,以便将其标识给应用程序。

在ASP.net中,安全令牌存储为cookie。

我想让用户在我的应用程序中点击一下,即可删除cookie并将其重定向到安全令牌服务以获取新令牌。 简而言之,可以轻松注销并以其他用户身份登录。 我尝试删除代码中包含代码的cookie,但它以某种方式持续存在。

如何删除令牌以便用户可以再次登录并获取新令牌?


我找到了解决方案。 简单地说:

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

有关更多信息,请参阅此处:http://garrettvlieger.com/blog/2010/03/refreshing-claims-in-a-wif-claims-aware-application/

我也看到,我也可以处理WIF框架的其他部分。 这绝对值得一读。


饼干有点奇怪。 它们由浏览器管理,并且没有“方法”来删除它们。 从服务器端的Request或Response对象中删除它们不会将它们从客户端的浏览器中删除。

要“删除”Cookie,您必须将其过期日期设置为过去。

请参阅:http://msdn.microsoft.com/en-us/library/ms178195.aspx

链接地址: http://www.djcxy.com/p/71775.html

上一篇: Windows Identity Foundation: How to get new security token in ASP.net

下一篇: getting Windows Identity Foundation "Developer Training Kit" examples to work