我正在使用SP的自定义STS。该站点是SAML令牌,具有SSO Implintation。 该注销无法正常工作。我如何实现自定义注册.Do我需要清除SP会话或清除cookie?

有帮助吗?

解决方案

我今天早上刚刚解决了这个确切的任务。您需要自定义STS来跟踪登录的站点,并在WSIGNOUT1.0处理程序中,您需要通过列表并签名。

本方法的完整描述,辅助类以跟踪登录的RPS,以及添加到您的WSignOut处理程序的代码都在这里:

http:// netpl.blogspot.co.uk/2010/12/wif-ws-federation-and-single-sign-out.html

我对辅助类进行了一个修改,我添加了一个清理方法,以删除一旦您注销的曲线跟踪RPS的cookie:

public static void CleanUp()
{
    HttpCookie siteCookie = HttpContext.Current.Request.Cookies[SITECOOKIENAME];

    if (siteCookie != null)
        HttpContext.Current.Response.Cookies[SITECOOKIENAME].Expires = DateTime.Now.AddDays(-1);
}
.

然后,在结束时,如果您的签名处理程序,只需称之为。这是我的签名处理程序块:

        else if ( action == WSFederationConstants.Actions.SignOut )
        {
            // Process signout request.
            SignOutRequestMessage requestMessage = (SignOutRequestMessage)WSFederationMessage.CreateFromUri( Request.Url );
            FederatedPassiveSecurityTokenServiceOperations.ProcessSignOutRequest( requestMessage, User, requestMessage.Reply, Response );

            string[] signedInUrls = SingleSignOnManager.SignOut();
            lblSignoutText.Visible = true;
            foreach (string url in signedInUrls)
            {
                SignOutLinks.Controls.Add(
                    new LiteralControl(string.Format(
                        "<p><a href='{0}'>{0}</a>&nbsp;<img src='{0}?wa=wsignoutcleanup1.0' " +
                        "title='Signout request: {0}?wa=wsignoutcleanup1.0'/></p>", url)));
            }

            SingleSignOnManager.CleanUp();
        }
.

就像一个魅力。请记住创建ASP:标签名为lblsignouttext和default.aspx 上的div调用signoutlinks。

你必须弄清楚自己的唯一事情,就是每个SharePoint网站的注销链接都需要隐藏,你必须创建自己的签名链接,指向:

http://mycustomsts/Default.aspx?wa=wsignout1.0

(当我遇到这个问题时,我实际上是聪明的方式。希望我的回答有帮助!)

许可以下: CC-BY-SA归因
scroll top