Мой сайт работает на IIS 8.5 в Windows 2012R2. Пул приложений .NET CLR версии 4.0; Интегрированный конвейерный режим. Я использую URL Rewrite 2.0.
Сам сайт является классическим ASP-сайтом. В Web.Config у меня есть исходящее правило, которое переписывает исходящий трафик для включения HttpOnly и domain = .mydomain.com (определения правил см. Ниже)
<outboundRules>
<rule name="Add HttpOnly" preCondition="No HttpOnly">
<match serverVariable="RESPONSE_Set_Cookie" pattern="ASPSESSION.*" negate="false" />
<action type="Rewrite" value="{R:0}; HttpOnly; domain=.mydomain.com" />
<conditions>
<add input="{HTTP_HOST}" pattern="^.*mydomain.com$" />
</conditions>
</rule>
<preConditions>
<preCondition name="No HttpOnly">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly; domain=.mydomain.com" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
Итак, если вы посетите mydomain.com и просмотрите файлы cookie в консоли разработчика, вы увидите два файла cookie сеанса с одинаковым именем, но только с соответствующими флагами и знаком «.» префикс для домена; у другого нет ни одного флага или префикса.
Я пытаюсь устранить дублирование и сохранить только файлы cookie с префиксом и пометкой. Я много гуглил, чтобы посмотреть, не возникла ли у кого-то еще эта проблема Я также попытался изменить регулярное выражение безрезультатно. Я прочитал об элементе httpCookies, в который можно вставить.
Суть в том, что я хочу поделиться одним файлом cookie сеанса через mydomain.com и * .mydomain.com. Может ли кто-нибудь помочь мне определить, являются ли мои правила web.config причиной дублирования, или, возможно, какое-то поведение браузеров, которое я пропускаю? Я застрял.