IIS改写如何截取一个设置的cookie值
IIS rewrite how to intercept a set cookie value
<?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 这很容易工作。我的问题是站点 运行 on 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 了解不多。建议?
我很接近,但没有使用正确的东西,尽管经过更多的反复试验,我设法弄明白了。
<?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>
<?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 这很容易工作。我的问题是站点 运行 on 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 了解不多。建议?
我很接近,但没有使用正确的东西,尽管经过更多的反复试验,我设法弄明白了。
<?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>