2012-11-02 3 views
1

WIF를 사용하는 ServiceStack 서비스가 있습니다. 내부적으로 모든 것이 효과적입니다. ClaimsPrincipal & ClaimsIdentity 개체가 생성되고 요청을 추가/읽기해도 문제가되지 않습니다. 모든.WIF (Windows Identity Foundation) - 서비스에서 돌아 오지 않는 주체/ID

그러나이 개체를 클라이언트 (ServiceStack 클라이언트 및 C# WebRequest 시도)에서 가져 오려고하면 WIF가 클라이언트에 설치되어 전송하려고했는지에 관계없이 개체의 일부만 반환합니다. 내가 직접 호출하고 JSON 결과를 얻을 경우,이 모두가 반환된다 :

{"Principal":{"__type":"Microsoft.IdentityModel.Claims.ClaimsPrincipal, Microsoft.IdentityModel","Identity":{"__type":"Microsoft.IdentityModel.Claims.ClaimsIdentity, Microsoft.IdentityModel","Name":"BoogeyFace","AuthenticationType":"","IsAuthenticated":true}}} 

가 어떻게 서비스 경계를 ​​넘어 전체 WIF ClaimsPrincipal을받을 수 있나요?

+0

saml 토큰을 사용하거나 쿠키를 사용하지 않고 클레임 원칙을 경계 전체에 전달 하시겠습니까? 실제 시나리오는 무엇입니까? –

+0

좋은 질문 - 그것의 SOA 애플 리케이션 및 기타 서비스는 ClaimsPrincipal을 심문하고 청구 정보를 얻고 싶어합니다. 그렇지 않으면 ClaimsPrincipal의 핵심은 무엇입니까? 나는 내가 과거에 해왔 던 것처럼 IPrincipal과 IIdentity를 구현하는 커스텀 객체를 만들 수 있었다는 것을 의미한다. 아마도 나는 뭔가를 놓치고 있는가? – schmoopy

+0

나는 그것을 얻지 못하고 여전히 saml을 통과하거나 쿠키를 재사용해야한다고 생각한다. 클레임을 전달하려는 경우 주 객체가 아닌 문자열 문자열 사전으로 전달하십시오. –

답변

0

:-) 발행 재사용 할 수

감사는 부트 스트랩 토큰을 저장하는 서비스를 구성해야 토큰. .net 4.5에서 save bootstrap context이라고하는이 이음새. IClaimsIdentity.BootstrapToken 속성의 토큰에 액세스 할 수 있습니다. 자세한 내용은 here을 참조하십시오.

서비스 측면에서 원래 토큰을 사용하면 클라이언트에있는 것처럼 다른 서비스와 통신 할 수 있습니다. 예를 들어 CreateChannelWithIssuedToken (here)이 있습니다.

관련 문제