单点注销问题,无法在多个站点中执行

本文关键字:站点 执行 注销 问题 单点 | 更新日期: 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);