2013-05-09 61 views
1

我有一个通过ws2007FederationHttpBinding绑定接收安全令牌的WCF服务。这工作正常,在我的服务中,我可以使用以下代码获取有关在令牌中传递的用户的信息。如何向WCF中的安全令牌添加附加声明

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之前阅读令牌添加额外的自定义声明的声明身份。当前。为了在WCF收到这个令牌后立即给出一个例子,我希望它能够自定义数据库查找用户名并添加一些额外的声明。

任何人都可以指出我为了实现这个目标而需要接入的正确方向吗?

由于

回答

3

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