【问题标题】:IIS rewrite how to intercept a set cookie valueIIS 重写如何拦截设置的 cookie 值
【发布时间】:2016-09-18 00:22:09
【问题描述】:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Rewrite requests" enabled="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="https://site1.domain1.net/{R:0}" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="Rewrite outbound" enabled="true">
                    <match filterByTags="None" pattern="(.*)site1\.domain1\.net(.*)" />
                    <action type="Rewrite" value="{R:1}site2.domain2.com{R:2}" />
                </rule>
                <rule name="Rewrite cookie">
                    <match serverVariable="{HTTP_COOKIE}" pattern="(.*)site1\.domain1\.net(.*)" />
                    <action type="Rewrite" value="{R:1}site2.domain2.com{R:2}" />
                </rule>
                <preConditions>
                </preConditions>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

好的,所以我有一个由 site2.domain2.com 访问的前端服务器,并且所有到它的流量都应该是 url 重写为 site1.domain1.net 这很容易工作。我的问题是在 site1.domain1.net 上运行的站点为它运行的应用程序写入了一个带有一堆非标准值的 cookie。我需要能够更改写入 cookie 的值以用于登录。

我需要定位的行在下面

https%3a%2f%2fsite1.domain1.net%2flgn%2fauth2%2fagent%2fsrms%2frefresh

它没有像 url=value 或 host=value 这样的标准标签,它只是上面的那一行,我需要抓住 site1.domain1.net 部分并更改为 site2.domain2.com 但运气不佳。

您可以在顶部的代码中看到我尝试这样做的地方,但没有成功,因为我对使用 cookie 了解不多。有什么建议吗?

【问题讨论】:

    标签: windows server iis-7.5 url-rewrite-module


    【解决方案1】:

    我很接近,但没有使用正确的东西,尽管经过多次反复试验,我设法弄明白了。

        <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
            <system.webServer>
                <rewrite>
                    <rules>
                        <rule name="Rewrite requests" enabled="true">
                            <match url="(.*)" />
                            <action type="Rewrite" url="https://site1.domain1.net/{R:0}" />
                        </rule>
                    </rules>
                    <outboundRules>
                        <rule name="Rewrite outbound" enabled="true">
                            <match filterByTags="None" pattern="(.*)site1\.domain1\.net(.*)" />
                            <action type="Rewrite" value="{R:1}site2.domain2.com{R:2}" />
                        </rule>
                        <rule name="Modify Cookie">
                        <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" />
                        <conditions>
                                <add input="{R:0}" pattern="(.*)site1\.domain1\.net(.*)" />
                        </conditions>
                        <action type="Rewrite" value="{C:1}site2.domain2.com{C:2}" />
                    </rule>
                    </outboundRules>
                </rewrite>
            </system.webServer>
        </configuration>
    

    【讨论】:

      猜你喜欢
      • 2019-05-23
      • 2014-12-25
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多