IIS переписать, как перехватить установленное значение 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="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 с кучей нестандартных значений для приложения, которое он запускает. Мне нужно иметь возможность изменить значение, записанное в куки для входа в систему.

Линия, на которую я должен нацелиться, находится ниже

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

У него нет стандартного тега, такого как url ​​= value или host = value, это всего лишь строка выше, мне нужно перехватить часть site1.domain1.net и перейти на site2.domain2.com, но без особой удачи.

Вы можете увидеть в коде вверху, где я пытался это сделать, безуспешно, так как я мало что знаю об игре с куки-файлами. Предложения?

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>
Другие вопросы по тегам