2014-11-13 10 views
1

WIF를 사용하는 MVC 응용 프로그램에서 작업하고 있습니다. 이 쿠키에 모든 것을 저장하는 것Windows Identity Foundation을 사용하는 쿠키 대신 서버에 사용자 데이터를 저장하는 방법

ClaimsIdentity identity = HttpContext.User.Identity as ClaimsIdentity; 
identity.AddClaim(new Claim("foo", "bar")); 

:

내가 좋아하는 뭔가를 사용하여 ClaimsIdentity에서 일부 세션 변수를 저장하기 위해 노력하고있어.

나는 어떻게이 데이터를 서버에 저장할 수 있는지 알아 내려고하고있다. 나는 주변을 둘러 보았지만 정말 유용한 것을 찾지 못했습니다 (저는 WIF에 관해서는 완전히 초보자입니다).

쉬운 방법이 있나요?

+1

이 무엇을 원하고 싶은 것과 유사합니까 ?? 이 이전 게시물에 봐 http://stackoverflow.com/questions/21404935/mvc-5-access-claims-identity-user-data – MethodMan

+0

@DJKRAZE 나는 그렇게 생각하지 않아, 내가 뭔가를 놓치지 않는 한,이 doesn 저장 매체 (쿠키 대 서버) 주소 지정. –

+0

나는 당신이 비슷한 것을 구현할 수 있다고 생각하고 링크에서 코드가 좋아 보이는 것에서 클라이언트쪽에 저장했다. 세션 객체에 저장할 수는 없을까 ..? – MethodMan

답변

2

인증 모듈을 참조 모드로 설정하여 서버의 세션에 클레임을 저장하도록 할 수 있습니다. 쿠키는 단순히 클레임에 매핑되는 식별자를 포함합니다.

이 작업을 수행하는 가장 쉬운 방법은 내 다음과 같은 방법을 구현하여 수행 할 수 있습니다가 생성되는 시점에서 토큰의 속성을 SessionSecurityTokenCreated 이벤트를 처리하고 설정하여 귀하의 global.asax :

void WSFederationAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e) { 
    e.SessionToken.IsReferenceMode = true; 
} 

참고로 the WIF Session Management overview on msdn