我想在单个控制器动作而不是全局应用程序中使用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。听起来好像你描述的是真的,那么我所追求的是不可能的。我希望认证和不授权。 –