这是我的问题。我已经建立了一个WIF RP、一个自定义STS和ADFS。ADFS具有适当的索赔提供者信任和依赖部分信任。当我触发RP的注销时,我会使用以下代码来完成:
WSFederationAuthenticationModule.FederatedSignOut(null, new Uri("https://myrelyingpartyapp.com/Default.aspx));
这很好用。我被STS注销了,然后它试图将我重定向回我的依赖方应用程序。依赖方应用程序说我没有经过身份验证,我最终回到了STS的登录页面。到目前为止,一切都很好。问题是,如果我尝试使用其他用户登录,依赖部分应用程序仍然认为我是以前的用户。那么我错过了什么?如何让依赖方应用程序忘记我以前的用户?我尝试过wsignoutcleanup1.0,但没有成功。
我找到了适用于我的代码。
var module = FederatedAuthentication.WSFederationAuthenticationModule; module.SignOut(false); var request = new SignOutRequestMessage(new Uri(module.Issuer), module.Realm); Response.Redirect(request.WriteQueryString());