如果我想在控制器中获取声明,我可以这样做:
IClaimsIdentity u = (IClaimsIdentity) this.HttpContext.User.Identity;
var ni = u.Claims.First(x => x.ClaimType == ClaimTypes.NameIdentifier).Value;
然而,违反了视图和控制器之间的分离。控制器可能在没有HttpContext
的情况下被调用-那么正确的方法是什么?
TIA - ekkis
省略HttpContext
,直接使用控制器的User属性:
var u = (IClaimsIdentity)this.User.Identity;