我在 IIS 10 上运行一个非核心 ASP dotnet 应用程序。
我正在根据此配置为负载均衡器后面的 https 配置重写规则:https://www.jamescrowley.net/2014/03/07/ssl-termination-and-secure-cookiesrequiresl-with-asp-net-表单认证/
这是让我困惑的部分:
您还需要将 HTTPS 添加到 allowedServerVariables 列表中 applicationHost.config(或通过 URL 重写配置)
<rewrite>
<allowedServerVariables>
<add name="HTTPS" />
</allowedServerVariables>
</rewrite>
“或通过 URL 重写配置”似乎表明这可以在
web.config
中设置。
我不想将此变量添加到全局
applicationHost.config
文件中我想在我的特定应用程序中设置它web.config
.
我把
<allowedServerVariables>
放在web.config
的什么地方?我尝试将其置于配置片段中的重写规则之下,但出现错误:
尝试:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="RULE_NAME">
<serverVariables>
<set name="SOME_NAME" value="{SOME_VALUE}"/>
</serverVariables>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
前段时间我从https://github.com/projectkudu/kudu/wiki/Xdt-transform-samples得到这个例子
在你的例子中:
<rule name="HTTPS_AlwaysOn" patternSyntax="Wildcard">
<match url="*" />
<serverVariables>
<set name="HTTPS" value="on" />
</serverVariables>
<action type="None" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" />
</conditions>
...