문제
SP 용 사용자 지정 STS를 사용하고 있습니다. 사이트는 SSO 임프로 사용 가능한 SAML 토큰입니다. 로그 아웃이 제대로 작동하지 않습니다. 사용자 정의 가입을 구현할 수 있습니까? SP 세션이나 맑은 쿠키를 지우는 것이 필요합니까?
해결책
오늘 아침 에이 정확한 작업을 다루었습니다. 사용자 정의 STS가 로그인 한 사이트를 추적 할 수 있으며 WSIGNOUT1.0 핸들러에서 목록을 통해 가서 서명해야합니다.
전체 설명이 메서드의 전체 설명, 로그인 한 RPS를 추적하고 WSIGNOUT 처리기에 추가하는 코드가 모두 여기에 있습니다 :
"Nofollow"> http : // netpl.blogspot.co.uk/2010/12/wif-ws-federation-and-single-sign-out.html
Helper 클래스를 하나의 수정했지만, 로그 아웃 한 후 RPS를 추적하는 쿠키를 제거하는 정리 방법을 추가하여
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> <img src='{0}?wa=wsignoutcleanup1.0' " +
"title='Signout request: {0}?wa=wsignoutcleanup1.0'/></p>", url)));
}
SingleSignOnManager.CleanUp();
}
.
는 매력처럼 작동합니다. ASP : lblsignouttext라는 label 및 default.aspx 에서 lbblsignouttext라는 div라고 표시된 div
자신을 알아 내어야할만한 것, 각 SharePoint 사이트의 로그 아웃 링크가 숨겨야하며, 를 가리키는 자체 로그 아웃 링크를 만들어야한다는 것입니다.
http://mycustomsts/Default.aspx?wa=wsignout1.0
(나는 실제로이 질문을 가질 때 이것을하는 영리한 방법을 위해 끈적 끈적했다. 희망이 내 대답이 도움이되기를 바랍니다!)