我有一个带有 .NETFramework 4.6 的 asp.net mvc4 应用程序,带有 AzureAD 身份验证和 OpenID Connect 协议。现在随着 Chrome80 SameSite=None update 的最新更新,应用程序身份验证失败。
我使用了下面提到的文章,它使用 URLRewrite 模块来设置 SameSite=None :
https://blog.elmah.io/the-ultimate-guide-to-secure-cookies-with-web-config-in-net/
<system.webServer>
<rewrite>
<outboundRules>
<rule name="Remove Server Header">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=None" />
</rule>
<preConditions>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
...
</system.webServer>
将 Chrome 浏览器中的标志更新为已启用:
将注册表中 LegacySameSiteCookieBehaviorEnabled 的值设置为 1 会导致应用程序身份验证成功,但如果将 LegacySameSiteCookieBehaviorEnabled 设置为 0 ,则以防应用程序身份验证失败。
谁能帮我知道如何解决这个问题?