我们有一个 asp.net web 应用程序和相关的自托管 nancy rest API。目前,该 web 应用程序通过 ssl 进行保护,并且 api 不在端口 80 上(仍在开发中)。
IIS 身份验证已打开,并将未经授权的请求重定向到用户登录页面。
在理想世界中,我希望 nancy 也在端口 443 上。
但这意味着 IIS 会将端口 443 上的任何流量重定向到用户登录页面。
是否可以在 IIS 身份验证重定向之前重写 application/json 请求以转到 nancy?或者任何以 /api/ 开头的路径
我怎样才能使 IIS 身份验证和 nancy 在同一个端口上正常运行?
答案1
我不使用 Nancy,所以我不确定这是否有帮助,但是:
您可以有选择地启用 IIS 身份验证,仅针对网站的某些部分,或排除某条路线。
在您的 web.config 中您可以有如下内容:
<location path="/api/">
<system.webServer>
<security>
<authentication>
<basicAuthentication enabled="false"/>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
使用该location
节点,您可以定义站点的哪些部分应该使用不同类型的身份验证。
然后,您仍然可以使用 URL Rewrite 模块根据 MIME 类型重写 URL。