我知道字段 Claims 位于 User.Identity 中,因为我可以使用断点视图查看它及其内容,如图所示。但是,当我尝试在开发期间使用intellisense访问它时,我不能。立即窗口也是如此 - 该属性似乎不存在。
这是怎么回事?
答案 0 :(得分:3)
User.Identity属性最有可能是IIdentity
类型。另一方面,存储在其中的实例是ClaimsIdentity类型,您可以在调试器中看到。
您需要cast一种类型来访问另一种类型:
ClaimsIdentity identity = User.Identity as ClaimsIdentity;
IEnumerable<Claim> claims = identity.Claims;
答案 1 :(得分:0)
您也可以在调试器弹出窗口中右键单击“声明”,然后单击“复制表达式”。
然后,您可以粘贴到即时窗口中以了解如何访问它。就我而言,就是这个
((Microsoft.IdentityModel.Claims.ClaimsIdentity)((Microsoft.IdentityModel.Claims.ClaimsPrincipal)User).Identity).Claims
非常讨厌嗯..