Вопрос

Я использую пользовательские STS для SP. Сайт - это токен SAML, включенный с помощью SSO Imbelmentation. Выход не работает должным образом. Как я реализую пользовательские подписи. Что мне нужно очистить сеанс SP или Clear Cookies?

Это было полезно?

Решение

Я только что решил эту точную задачу этим утром. Вам понадобится ваши пользовательские STS, чтобы отследить сайты, которые вошли в систему, и в обработчике WSIGNOUT1.0 вам нужно будет пройти список и подписать их.

Полное описание этого метода, класс помощника для отслеживания RPS вошли в систему, а код для добавления к вашему обработчику WSIGRET все здесь:

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

Я сделал одну модификацию в класс помощника, хотя я добавил метод очистки для удаления файла cookie, который отслеживает отслеживание RP, как только вы подписали:

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

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

А потом, в конце, если ваш подпись Handler, просто позвони ее. Вот мой блок обработчика подписания:

        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 и div под названием fightoutlinks по умолчанию .aspx

Единственное, что вам придется выяснить сами, заключается в том, что каждая ссылка на выхода из системы SharePoint должна быть скрыта, и вам придется создать собственную ссылку для подписания, которые указывают на:

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

(я на самом деле был гугл для умного способа сделать это, когда я наткнулся на этот вопрос. Надеюсь, мой ответ поможет!)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top