【发布时间】:2016-11-07 04:37:45
【问题描述】:
我在 Google 和 Stack Overflow 上进行了很多搜索以找到解决问题的方法,但没有任何效果。
这是我的问题:
我将 IIS 7 与称为 WebDEV 的特殊编程环境一起使用,该环境不允许直接操作
OPTIONSHTTP 方法。因此,所有建议使用代码进行某种服务器端请求处理的解决方案都是不可行的。我必须使用 Window 身份验证并禁用匿名访问
我有一个使用 CORS 发布到此服务器的页面。由于此 POST 应该有
Content-type: Octet-stream,因此浏览器会发出预检。当我启用匿名访问时,一切正常(CORS 配置良好)
当我禁用匿名访问时,服务器会回复 HTTP 401 未经授权的预检请求响应,因为它不包含凭据信息。
-
我试图为 IIS 编写一个接受这样的 OPTIONS 请求的模块,但它不起作用(可能无法将模块正确添加到 IIS)
public class CORSModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.PreSendRequestHeaders += delegate { if (context.Request.HttpMethod == "OPTIONS") { var response = context.Response; response.StatusCode = (int)HttpStatusCode.OK; } }; } }
问题是:如何在不启用匿名访问或编写一些服务器端代码的情况下使 IIS 以 HTTP 200 响应预检请求? IIS 是否有一个简单的配置或现成的模块可以做到这一点?至少,将上述模块安装到 IIS 7 中的详细步骤是什么?
【问题讨论】:
标签: iis cors windows-authentication preflight