servicestack,C#,Wif,servicestack" /> servicestack,C#,Wif,servicestack" />

C# Windows身份基础(WIF)-不返回服务的主体/身份

C# Windows身份基础(WIF)-不返回服务的主体/身份,c#,wif,servicestack,C#,Wif,servicestack,我有一个使用WIF的ServiceStack服务-在内部一切都很好-ClaimsPrincipal&ClaimSideEntity对象被创建,添加/读取它们的声明根本没有问题 但是,当我尝试从客户端尝试ServiceStack客户端和c WebRequest获取该对象时,它只返回该对象的一部分-无论我是否在客户端上安装了WIF并尝试强制转换。如果我直接调用并获得json结果,则返回的结果如下: {"Principal":{"__type":"Microsoft.IdentityModel.Cla

我有一个使用WIF的ServiceStack服务-在内部一切都很好-ClaimsPrincipal&ClaimSideEntity对象被创建,添加/读取它们的声明根本没有问题

但是,当我尝试从客户端尝试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索赔


谢谢:-

要重用已颁发的令牌,您必须配置服务以保存引导令牌。 这将在.NET4.5中调用。 这将允许您访问IClaimsIdentity.BootstrapToken属性中的令牌。有关更多详细信息,请参阅

将原始令牌放在服务端允许您与另一个服务通信,就像您在客户端一样。
例如,您可以使用描述的CreateChannelWithIssuedToken。

您确定要跨边界传递您的索赔主体,而不是发行和使用saml令牌或wif cookie吗?实际情况是什么?好问题-这是一个SOA应用程序和其他服务想要让ClaimsPrincipal进行查询并获取索赔信息-否则ClaimsPrincipal的真正意义是什么?我的意思是,我可以像过去一样创建一个实现IPrincipal和IIdentity的自定义对象。。也许我遗漏了什么?我不太明白,我仍然相信你应该通过saml或重新使用饼干。如果你只是想传递声明,那么就作为字符串dict而不是主对象传递。是的,这就是我要做的。。我猜WIF中的这个语句只意味着来自后端服务的委托:身份委托。WIF使跨服务边界维护身份变得很容易,这样开发人员就可以实现身份委派场景。我知道WIF是如何工作的,但我从未听说或做过传递声明主体对象的工作。它不是为了跨越边界。