저는 Windows Identity Foundation을 사용하여 사이트 로그인을 관리하고 있습니다.Windows ID 기반 - 클레임 로그 아웃 또는 업데이트
사용자가 로그인 할 때 요청에 대한 일부 정보를 사용하고 있습니다. 그것은 모두 잘 작동하지만, 지금은이 시나리오 관리 할 필요가 :
- 사용자가 이미 athenticated, 로그인 유효한 토큰을 갖고.
- 하지만 사용자가 다른 사이트에서 리디렉션을 통해 다시 탐색하기로 결정했습니다.
- 요청에 대한 정보가 다릅니다. 그는 자연스럽게 자신의 새로운 정보
- 또는 자신의 기존 토큰을 업데이트하여 새로운 토큰을 생성하도록 -
- 나는
-
그를 아웃
- 을 하나합니다.
그래서 내 질문은 :
- 어떻게 윈도우 신원 재단에서 로그 아웃합니까?
- 또는 기존 클레임을 어떻게 업데이트합니까?
나는이 코드를 시도 :
public void ExpireClaims(HttpContextBase httpContextBase)
{
var module =
httpContextBase.ApplicationInstance.Modules["WSFederationAuthenticationModule"] as
WSFederationAuthenticationModule;
if (module == null)
{
return;
}
module.SignOut(true);
}
을하지만 모듈은 항상 곁에 null입니다.
그리고 난이 시도 :
public void FederatedSignOut(string replyUrl)
{
WSFederationAuthenticationModule.FederatedSignOut(null, new Uri(replyUrl));
}
을하지만 난이 작업을 수행 할 때 내가 null 참조 execption를 얻을.
대단히 감사합니다.
감사합니다. FederatedAuthentication.SessionAutheticationModule.SignOut을 사용하고 있습니다. FormsAuthentication.SignOut을 사용하는 것만으로도 사용자가 현재있는 사이트가 아닌 페더레이션 사이트에 액세스 할 수 있음을 알게되었습니다. 최종 옵션도 조사하게됩니다. 다시 한번 감사드립니다. – Sean
그 후, 위의 방법은 현재의 의존 당사자로부터 나를 사인했을뿐입니다.그들은 신뢰하는 모든 당에서 나를 사인하지 않았다. 나는 내 자신의 사용자 정의 연합 사인을 구현해야만했다. 여기 내 다른 질문에 대한 링크가 있습니다 : http://stackoverflow.com/questions/8228746/wif-federatedsignout-not-signing-user-out-all-sites – Sean
또한, 나는 당신이 클레임을 갱신 할 수 없다는 것을 발견했습니다. 토큰. 현명한 행동을 보이는 보안 관점에서! – Sean