我的 ASP.NET MVC Web 应用程序通过显式发送 401 状态代码和 www-authenticate 标头来处理身份验证本身,以使浏览器显示基本身份验证对话框。
我的托管服务提供商不提供对 IIS 管理器的访问,并且始终启用 IIS BasicAuthenticationModule。
不幸的是,我的应用程序实现的自定义基本身份验证现在被 IIS BasicAuthenticationModule “隐藏”了。每当我发送 401 时,BasicAuthenticationModule 似乎认为处理身份验证是他的责任。它还覆盖了我的应用程序的自定义 www-authenticate 标头。
有没有办法只使用 web.config 为我的 Web 应用程序禁用 IIS 模块?我已经尝试将以下设置添加到 web.config:
<configuration>
<system.webServer>
<modules>
<remove name="BasicAuthenticationModule" />
</modules>
</system.webServer>
</configuration>
但这只会产生锁冲突错误。此设置也没有解决问题:
<configuration>
<system.web>
<authentication mode="None" />
</system.web>
</configuration>
还有其他建议吗?