wa = wsignupcleanup1.0不会在依赖方上注销用户

时间:2011-05-26 14:08:49

标签: c# security wif claims-based-identity

使用我们使用Windows Identity Foundation的项目。 在测试注销解决方案时,我发现以下调用 http://rp/?wa=wsignoutcleanup1.0不会删除RP上的FedAuth cookie。 这反过来又使用户保持在RP登录。

为了解决这种情况,我将以下代码添加到Global.asax:

protected void Application_Start()
{
    FederatedAuthentication.WSFederationAuthenticationModule.SigningOut += new EventHandler<SigningOutEventArgs>(WSFederationAuthenticationModule_SigningOut);
}

void WSFederationAuthenticationModule_SigningOut(object sender, SigningOutEventArgs e)
{
    FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();
}

但WIF不应该自动解决这个问题吗? 或者这是这样做的方式吗?

2 个答案:

答案 0 :(得分:2)

同意@Anton。它应该适用于WIF cookie。它不会清除您的 自己的 会话。

如果您有其他要清理的东西,那么您需要做额外的工作。需要注意的是,任何WIF事件处理程序都无法使用会话对象。因此,例如,您无法从 WSFederationAuthenticationModuleSigningOut 调用 Session.Abandon()。通常,您将重定向到另一个页面以进行最终清理。此处提供了一个示例:http://claimsid.codeplex.com(示例#1)

答案 1 :(得分:2)

确保所有网址框都匹配,即使是IIS中的应用程序名称,网站名称框也应该与配置中的网址匹配。我很难跟踪这个问题。见这里:wasignoutcleanup issue