age*_*gez 14 windows-authentication asp.net-mvc-4 asp.net-web-api
我有一个基于MVC4的Windows身份验证的Intranet应用程序.
当我在控制器中需要WindowsIdentity进行授权时,我只是使用
HttpContext.User.Identity
Run Code Online (Sandbox Code Playgroud)
现在我想使用新的Asp.Net WebAPI进行一些Ajax调用.
有没有办法以与MVC控制器相同的方式获取WindowsIdenty对象?
Mar*_*nes 24
请不要HttpContext从控制器中引用它.
您可以访问Controllers User属性,该属性是在没有直接引用的情况下访问Identity的方式HttpContext.
public class MyController : ApiController
{
public string Get()
{
var indenty = this.User.Identity;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么
controllers User属性提供了一个抽象级别,允许更容易的模拟,从而进行单元测试.这种抽象还允许更大的可移植性,例如,如果这是WebApi Self Host,您甚至无法访问HttpContext.
要阅读有关如何进行单元测试和模拟User属性的更多信息,请阅读此处.有关更多信息,请参阅此处的可移植性.
| 归档时间: |
|
| 查看次数: |
10683 次 |
| 最近记录: |