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

本文关键字:依赖方 用户 注销 wsignupcleanup1 wa | 更新日期: 2023-09-27 17:57:55

在使用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不应该自动处理这个问题吗?还是这样做?

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

确保所有url大小写匹配,即使IIS中的应用程序名称、网站名称大小写也应与configs中的url匹配。我很难找到这个。请参阅此处:wasignoutcleanup问题

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

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