如何向WCF中的安全令牌添加其他声明

时间:2013-05-09 08:17:22

标签: wcf .net-4.5 wif

我有一个WCF服务,通过ws2007FederationHttpBinding绑定获取安全性令牌。这很好用,在我的服务中,我可以使用以下代码来获取有关在令牌中传递的用户的信息。

 var claimsPrincipal = ClaimsPrincipal.Current;
 var claimsIdentity = (ClaimsIdentity)claimsPrincipal.Identity;
 string s;
 foreach (var claim in claimsIdentity.Claims)
 {
         s += "\r\n\t" + claim.Type;
         s += "\r\n\t\t" + claim.Value;
     }
 }

我确定我已经在某处找到了一个方法,我可以在WCF管道中覆盖该方法,以便在读入令牌时以及在将其保存到ClaimsPrincipal.Current之前向声明标识添加其他自定义声明。要在WCF收到此令牌后立即提供示例,我希望它转到自定义数据库查找用户名并添加一些其他声明。

为了达到这个目的,有人能指出我需要连接的正确方向吗?

由于

1 个答案:

答案 0 :(得分:4)

从一个名为ClaimsAuthenticationManager的类派生并注册它。在令牌到达之后和调用服务之前,将调用Authenticate方法。您可以在此处更改/添加/删除声明。