14
我有一个基于MVC4的Windows身份验证的Intranet应用程序。Windows身份验证和Asp.Net Web API
当我需要的授权目的的WindowsIdentity在控制器我只是用
HttpContext.User.Identity
现在我想用新的Asp.Net的WebAPI一些Ajax调用。
有没有一种方法可以像MVC控制器一样轻松获取WindowsIdenty对象?
我有一个基于MVC4的Windows身份验证的Intranet应用程序。Windows身份验证和Asp.Net Web API
当我需要的授权目的的WindowsIdentity在控制器我只是用
HttpContext.User.Identity
现在我想用新的Asp.Net的WebAPI一些Ajax调用。
有没有一种方法可以像MVC控制器一样轻松获取WindowsIdenty对象?
请不要从控制器引用HttpContext
。
您可以访问控制器User
属性,该属性是通过对HttpContext
的正确引用而访问标识的方式。
public class MyController : ApiController
{
public string Get()
{
var indenty = this.User.Identity;
}
}
为什么
这些控制器User
属性提供了一个抽象水平,这允许更容易嘲笑并且因此单元测试。这种抽象还允许更大的便携性,例如如果这是WebApi Self Host,您甚至无法访问HttpContext
。
一个小小的说明:如果你想要身份使用User.Identity – agez 2013-02-15 16:12:49
当然。更新,谢谢。 – 2013-02-15 16:19:31
嗯,我很欣赏答案的清晰度,如果你解释为什么不从控制器引用HttpContext,这将是每个人的教化。 – dansan 2014-01-06 12:00:53