从控制器检索声明 - 如何?

时间:2011-07-30 22:28:02

标签: wif claims-based-identity federated-identity

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

IClaimsIdentity u = (IClaimsIdentity) this.HttpContext.User.Identity;
var ni = u.Claims.First(x => x.ClaimType == ClaimTypes.NameIdentifier).Value;
但是,这违反了视图和控制器之间的分离。可以在没有HttpContext的上下文中调用控制器 - 那么正确的方法是什么?

TIA - ekkis

1 个答案:

答案 0 :(得分:1)

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

var u = (IClaimsIdentity)this.User.Identity;