我有一个使用WIF的ServiceStack服务 - 内部一切都很好 - ClaimsPrincipal& ClaimsIdentity对象被创建,添加/读取它们的声明完全没有问题。
然而,当我尝试从客户端(尝试过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 :(得分:0)
要重复使用已颁发的令牌,您必须配置服务以保存引导令牌。
此接缝在.net 4.5中称为save bootstrap context。
这样您就可以访问IClaimsIdentity.BootstrapToken
属性中的令牌。有关详细信息,请参阅here。
将原始令牌放在服务端允许您与其他服务进行通信,就像您在客户端一样。
例如,您可以使用CreateChannelWithIssuedToken
所述的{{1}}。