我在的iframe中加载了.NET MVC应用程序。最初,用户将打开主页。主控制器重定向到登录页面:
return RedirectToAction("Index", "Login", new { returnUrl = redirectURL, error = errorMessage });在此更新之前,在没有指定或未指定KB4533002 .NET累积更新时添加SameSite=Lax之前,这是正常的。然后,我在web配置中添加了出站规则以发送SameSite=None;Secure。
<rewrite>
<outboundRules>
<clear />
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=None" />
</rule>
<rule name="Add Secure" preCondition="No Secure">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; Secure" />
</rule>
<preConditions>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
</preCondition>
<preCondition name="No Secure">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; Secure" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>这适用于Chrome、Firefox和最新的Edge。
但是Internet和Edge (不是Chromium)增加了额外的SameSite:
HttpOnly: true
path:/
SameSite: Lax
SameSite: None
Secure: true有谁知道怎么防止这事吗?
发布于 2020-02-06 08:14:59
谢谢你,于周。这是有帮助的,但我没有具体说明,而是将其设置为None。
<sessionState mode="SQLServer" sqlConnectionString="***" ... cookieless="UseCookies" cookieSameSite="None" />出站规则(SameSite=None;Secure)对我起作用。
发布于 2020-02-06 05:37:52
这可能是因为默认的SameSite设置为lax。您可以尝试通过根据SameSite设置(SameSiteMode)(-1)来删除此链接属性
在应用了这些更新的系统上,可以通过将SameSiteMode设置为
(SameSiteMode)(-1)来指定先前的行为。可以在Unspecified中使用web.config中的字符串指定此行为。
此外,您还可以参考两个类似的线程:
https://stackoverflow.com/questions/60076007
复制相似问题