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

Dan*_*don 1 asp.net cookies passive-sts windows-identity wif

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

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

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

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

Dan*_*don 5

我找到了解决方案.简洁地说:

   Dim smartWsFederationAuthenticationModule As  _
        Microsoft.IdentityModel.Web.WSFederationAuthenticationModule = _
        HttpContext.Current.ApplicationInstance.Modules("WSFederationAuthenticationModule")
    smartWsFederationAuthenticationModule.SignOut(True)
Run Code Online (Sandbox Code Playgroud)

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

我也看到我可以获得WIF框架的其他部分的句柄.这绝对值得一读.