0

有人告诉我,如果我想在控制器中获取声明,我可以执行以下操作:

IClaimsIdentity u = (IClaimsIdentity) this.HttpContext.User.Identity;
var ni = u.Claims.First(x => x.ClaimType == ClaimTypes.NameIdentifier).Value;

但是,这违反了视图和控制器之间的分离。控制器可能在没有的上下文中被调用HttpContext- 那么正确的方法是什么?

TIA - ekkis

4

1 回答 1

1

只需省略HttpContext并直接使用控制器的User属性:

var u = (IClaimsIdentity)this.User.Identity;
于 2011-07-30T22:49:48.767 回答