我想在單個控制器動作而不是全局應用程序中使用Windows集成身份驗證。我已經在網上閱讀了很多文章和StackOverflow,但還沒有找到答案。 請注意,我正在開發Web API 2.0而不是MVC。身份驗證使用Windows身份驗證上一個動作,而不是整個應用程序
也就是說,通常在您的整個應用程序啓用Windows身份驗證,你會做這樣的事情Web API documentation describes:
<system.web>
<authentication mode="Windows" />
</system.web>
在幕後,我不知道這是什麼一樣準確,但我有懷疑我可能能夠通過執行IAuthenticationFilter作爲described by Web API documentation在單個控制器動作上覆制它。但是,我還沒有找到確切的文章解釋如何做到這一點的Windows集成身份驗證。我的目標
例子:
在一天結束的時候,我想我的單個Web API,以接受來自配置爲使用Windows身份驗證在以下任一客戶端方案的客戶端的請求:
C#
var handler = new HttpClientHandler()
{
UseDefaultCredentials = true
};
var client = new HttpClient(handler);
瀏覽器
$.ajax({
url: 'api/testauthentication',
type: 'GET',
dataType: 'json',
xhrFields: {
withCredentials: true
}
})
編輯#1
它已經到了我的注意,這是值得注意的,我想通過配置文件,如web.config中編程,而不是完成以上,IIS設置等。此外,我在我的服務器上使用了OWIN to host這個應用程序。
你的意思認證或授權?恕我直言。您**在應用程序級驗證**並**授權**每種方法。 –
Gotcha。聽起來好像你描述的是真的,那麼我所追求的是不可能的。我希望認證和不授權。 –