方案
IIS Webserver。 不是.Net Webservice。 发布到Webservice。CORS PreFlight未发送凭证,服务器要拒绝未认证的用户
.NET Web应用程序连接在一个横结构域方式的web服务。
要求
Web服务器需要需要与单点登录身份验证的Active Directory用户。
它是可以接受的飞行前OPTIONS测试接受验证的请求,但任何其他请求(包括OPTIONS试验后的POST)必须要求身份验证的用户。
我在哪里:
我有一个成功的CORS跨域调用的Web应用程序和Web服务器之间的工作。我可以清楚地看到OPTIONS调用工作,然后后续POST调用工作。
问题:
OPTIONS调用不发送凭证。为了解决这个问题,我们允许匿名用户在网站级别。否则,我们会收到401未经授权的错误。
然而,一旦我们做到这一点,POST不再需要验证。事实上,Web服务器日志显示证书根本不在邮件中发送。这是不可接受的。
我需要一种方法是(a)强制选项调用发送Active Directory凭据或(b)Web服务器必须拒绝所有未验证非OPTIONS请求。
首:
对于解决途径(一),我对自己这需要相当的比赛。
对于溶液路径(B),更希望的IIS设置或web.config中设置。网络服务器是用python编写的,但我想我们可以创建一个c#web服务器代码单元,它将调用在服务器上执行真正工作的python代码。
想法?
谢谢。我读过的一些CORS文章说,这些凭证没有在“默认”选项请求上发送,这意味着它们可以发送。 有没有办法将IIS配置为只接受匿名选项请求,但需要其他任何凭据? 我们发现获得选项的唯一方法就是停止凭据在帖子上发送。 –
对不起,我对配置IIS一无所知。我回答说只是明确表示无法从客户端解决此问题。 – sideshowbarker