Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向WCF中的安全令牌添加其他声明_Wcf_.net 4.5_Wif - Fatal编程技术网

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

如何向WCF中的安全令牌添加其他声明,wcf,.net-4.5,wif,Wcf,.net 4.5,Wif,我有一个WCF服务,它通过ws2007FederationHttpBinding绑定获取安全令牌。这很好,在我的服务中,我可以使用以下代码获取令牌中传递的用户的信息 var claimsPrincipal = ClaimsPrincipal.Current; var claimsIdentity = (ClaimsIdentity)claimsPrincipal.Identity; string s; foreach (var claim in claimsIdentity.Claims

我有一个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收到这个令牌,我希望它转到自定义数据库查找用户名,并添加一些额外的声明

有人能告诉我为了达到这个目标我需要做什么吗


谢谢

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

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