【发布时间】:2012-11-22 01:01:49
【问题描述】:
我有一个 WebAPI 应用程序,它希望使用表单身份验证,或者我自己的自定义基本或摘要身份验证。它在大多数服务器上都能正常工作。但是在一些服务器上它不起作用。
我发现身份验证失败是因为 IIS 已经对 App Pool 用户进行了身份验证。 Thread.CurrentPrincipal.Identity.AuthenticationType = "协商"。 AFAIK 这是 Windows 身份验证。但是,相关站点的 Windows 身份验证已被禁用,我什至卸载了服务器上的 Windows 身份验证功能,但仍然遇到了同样的问题。
我发现将 runAllManagedModulesForAllRequests 设置为 true 可以解决这个问题,尽管它不是一个理想的解决方法,因为它会增加所有请求的开销,即使是那些通过静态处理程序运行的请求。
如果有人能告诉我为什么会这样,或者如何在 IIS 上调试身份验证过程,那将非常有帮助。
编辑: IIS7/7.5 集成管道(如果有所作为)
【问题讨论】:
标签: c# asp.net iis asp.net-web-api