【发布时间】:2016-12-30 18:29:42
【问题描述】:
场景
IIS 网络服务器。 不是 .Net Web 服务。 发布到 Web 服务。
.Net web应用以跨域方式连接到Webservice。
要求
网络服务器需要经过身份验证的 Active Directory 用户才能进行单点登录。
飞行前 OPTIONS 测试接受经过身份验证的请求是可以接受的,但任何其他请求(包括 OPTIONS 测试之后的 POST)都必须需要经过身份验证的用户。
我在哪里:
我在 Web 应用程序和 Web 服务器之间进行了成功的 CORS 跨域调用。我可以清楚地看到 OPTIONS 调用正常工作,然后后续 POST 调用正常工作。
问题:
OPTIONS 调用不发送凭据。为了解决这个问题,我们允许网站级别的匿名用户。否则,我们会收到 401 Unauthorized 错误。
但是,一旦我们这样做了,POST 就不再需要身份验证。事实上,网络服务器日志显示根本没有在帖子中发送凭据。这是不可接受的。
我需要一种方法来 (a) 强制 OPTIONS 调用发送 Active Directory 凭据,或者 (b) 网络服务器必须拒绝所有未经身份验证的非 OPTIONS 请求。
偏好:
对于解决方案路径 (a),我可以满足它的要求。
对于解决方案路径 (b),更喜欢 IIS 设置或 web.config 设置。 webserver 是用 python 编写的,但我想我们可以创建一个 c# webserver 代码单元来调用在服务器上执行实际工作的 python 代码。
想法?
【问题讨论】: