单点注销问题,无法在多个站点中执行
本文关键字:站点 执行 注销 问题 单点 | 更新日期: 2023-09-27 18:35:17
我正在使用STS来控制SSO。我有一个 STS 站点和两个客户端站点应用程序(站点 a、站点 b)。
站点 A 和站点 B 都已将 STS 站点添加为其 STS 参考。单点登录工作正常,我只能登录一次,但是,单点登录不起作用。
在站点 a 和站点 b 中,我已经在下面实现了 FederatedPassiveSignInStatus 控件。
<wif:FederatedPassiveSignInStatus ID="FederatedPassiveSignInStatus1" runat="server"
SignOutAction="FederatedPassiveSignOut" OnSignedOut="OnSigOut_click" />
OnSigOut_click:
public void OnSigOut_click(object sender, EventArgs e)
{
FederatedAuthentication.SessionAuthenticationModule.CookieHandler.Delete();
FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();
FederatedAuthentication.SessionAuthenticationModule.SignOut();
FederatedAuthentication.WSFederationAuthenticationModule.SignOut(false);
FormsAuthentication.SignOut();
Session.Abandon();
}
如果我先从站点 A 注销,然后刷新站点 B,站点 A 将重定向到 STS 登录登录页面,站点 B 仍位于具有相同登录信息的同一页面中。
任何人都可以知道如何进行单点注销/关闭吗?
使用 WSFederationAuthenticationModule。将以下模块添加到 web.config
<modules><add name="WsFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/></modules>
使用以下方法。以它为例。
WSFederationAuthenticationModule fam = FederatedAuthentication.WSFederationAuthenticationModule;
fam.FederatedSignOut(STSSignOutAbsoluteURL,RPReturnURL);