ASP.NET_SessionId SameSite 中的 cookie 值始终松散

ASP.NET_SessionId cookie value is alway Lax in the SameSite

我有一个 ASP.NET Web 应用程序,该应用程序需要在另一个站点的 iframe 中打开,即它应该支持跨站点 cookie。我想设置 SameSite=None; Web 应用程序中的 Secure。我放

<httpCookies sameSite="None" requireSSL="true" /> 

在 Web.config 中,但 cookie ASP.NET_SessionId 中的 SameSite 值始终是 宽松。我在 web.config 中的配置是否正确?

Global.asax 中编写下面的代码后,我可以将 SameSite 值设置为 None.

        protected void Session_Start(object sender, EventArgs e)
        {
            Response.Cookies["ASP.NET_SessionId"].SameSite = SameSiteMode.None;
            //while we're at it lets also make it secure
            if (Request.IsSecureConnection)
                Response.Cookies["ASP.NET_SessionId"].Secure = true;
        }

另一种实现方法是在 web.config 文件中。

<system.web>
        <httpCookies requireSSL="true"/>
        <sessionState cookieSameSite="None"/>
</system.web>

Web.config 中的 <httpCookies sameSite="..."> 属性不影响 ASP.NET_SessionId cookie。改为设置 <sessionState cookieSameSite="..."> 属性:

<system.web>
    <sessionState cookieSameSite="None" />
</system.web>

您不需要在 Session_Start 中处理 Response 对象的 cookies 吗? 每次 new 会话开始时... Cookie NOT YET 不可用。

您可以使用

Request.Cookies[ASP.Net_SessionId"]

相反。我解决了请求对象并解决了问题。