我的网站在Windows 2012R2的IIS 8.5上运行。应用程序池是.NET CLR版本4.0;集成管道模式。我正在运行URL Rewrite 2.0。
该站点本身是Classic 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元素。
整个想法是我想在mydomain.com和* .mydomain.com上共享一个会话cookie。有人可以帮助我确定是造成重复的原因是我的web.config规则,还是导致我忽略的浏览器行为?我被卡住了。