У меня есть приложение. NET MVC, загруженное в iframe на странице Microsoft Dynamics. Изначально пользователь откроет домашнюю страницу. Домашний контроллер перенаправляет на страницу входа в систему:
return RedirectToAction("Index", "Login", new { returnUrl = redirectURL, error = errorMessage });
Это было нормально до этого обновления KB4533002 Накопительное обновление для. NET добавление SameSite = Lax, когда SameSite отсутствует или не указано. Затем я добавил исходящие правила в веб-конфигурацию, чтобы отправить 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.
Но Inte rnet Explorer и Edge (не Chromium) добавляют дополнительные SameSite:
HttpOnly: true
path:/
SameSite: Lax
SameSite: None
Secure: true
Снимок экрана из Edge Developer Tools
Кто-нибудь знает, как это предотвратить?