我正在尝试实现从 web 层到 WCF 层的声明委托。
使用从 ClaimsIdentity BootstrapContext 获得的 ActAs 令牌非常有效。
在 Web 层从 ACS 收到的所有声明都正确传递到 WCF 层。
其设置类似于此处记录的:
http://msdn.microsoft.com/en-us/library/ee517269.aspx (但我相信这个具体示例与 WIF 4 有关。)
但是,我还需要丰富收到的声明以添加我们自己的内部声明。我使用 ClaimsAuthenticationManager 执行此操作。
这与此处记录的类似:http: //msdn.microsoft.com/en-us/library/system.security.claims.claimsauthenticationmanager.aspx
这可以正常工作,然后添加的其他声明可以在 Web 应用程序中的任何地方的 ClaimsIdentity 中使用。
但是,这些不会作为从 ClaimsIdentity.BootstrapContext 获得的令牌传递。
我理解这样做的原因是 BootstrapContext 包含收到的原始声明,因此不包含我添加的其他内部声明。
我需要一些方法才能将这些内部添加的声明传递给 actas 令牌中的 WCF 层。
有没有办法让 BootstrapContext 也包含我要添加的声明,或者有没有办法从当前的 ClaimsIdentity/Principle 生成 SecurityToken,我可以将其用作令牌(因为这将包含额外的索赔)。