我正在使用部署到SharePoint 2013的.NET 4.5 WCF服务,该服务使用ADFS提供自定义声明。在服务中,我想提取声明,但我看到不同的结果取决于我是使用System.IdentityModel类还是Microsoft.IdentityModel类。例如:
以下.NET 4.5代码:
var claimsIdentity = ClaimsPrincipal.Current.Identity as ClaimsIdentity;
在claimsIdentity.Claims
中产生一项下面的“旧”WIF代码(使用IClaimsPrincipal)
var claimsPrincipal = HttpContext.Current.User as IClaimsPrincipal;
var claimsIdentity = claimsPrincipal.Identity as IClaimsIdentity;
在claimIdentity中提出13项索赔。声明
如何使用.NET 4.5中的“新”WIF集成访问IClaimsIdentity可以看到的其他声明。由于与Microsoft.IdentityModel.Tokens的命名空间冲突,我想使用SecurityTokenDescriptor并且不能这样做(与IClaimsPrincipal结合),问题实际上变得更糟。