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