【发布时间】:2021-02-10 19:04:17
【问题描述】:
在我的网络应用程序中,我正在构建一个不同的网络应用程序。两个 Web 应用程序的域不同。
我在 iframed Web 应用程序的 web.config 中有以下 SessionState 配置。
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" sameSite="None"/>
<httpRuntime requestValidationMode="4.7.2" maxQueryStringLength="512" maxUrlLength="512" enableVersionHeader="false" />
<sessionState mode="Custom" cookieless="UseCookies" regenerateExpiredSessionId="true" timeout="245" cookieName="MYCOOKIE" cookieSameSite="None" customProvider="MyCustomSessionProvider">
<providers>
<!-- Custom provider details -->
</providers>
</sessionState>
<compilation batch="false" debug="false" />
<customErrors defaultRedirect="ErrorMessage.aspx" mode="On" />
</system.web>
当我加载页面时,iframed 页面的“MYCOOKIE”没有将 SameSite 设置为无。因为 MYCOOKIE 不会在后续 HTTP 请求中发送。
我正在使用 chrome(版本 86.0.4240.111(官方构建)(64 位))并启用了第三方 cookie。 IIS 版本 10.0 在 IIS 中安装的 .NET 框架版本是 4.8.03761
我有什么遗漏吗?
【问题讨论】:
-
请使用F12查看控制台是否有错误或警告,您使用的是什么浏览器?据我所知,有些浏览器与 SameSite 不兼容或需要用户启用此功能。
-
@samwu 没有控制台错误,我使用的是 Chrome 浏览器
-
你的 chrome 版本是什么?或者你可以试试其他浏览器看看是否有效。
-
@samwu 我已经提到了 chrome 版本、IIS 和 .NET 框架版本。 Edge 中存在问题。在 Firefox 中,如果我将 network.cookie.sameSite.laxByDefault 设置为 false,它就可以工作。
标签: asp.net .net iis httpcookie samesite