如何在我的 web.config 中设置允许的服务器变量而不是 applicationHost.config?

问题描述 投票:0回答:1

我在 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
的什么地方?我尝试将其置于配置片段中的重写规则之下,但出现错误:

asp.net iis iis-10 windows-server-2019
1个回答
1
投票

尝试:

<?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>
        ...
© www.soinside.com 2019 - 2024. All rights reserved.