1

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

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

在 Web.config 但cookie ASP.NET_SessionId中的SameSite值始终为Lax。我在 web.config 中进行了正确的配置吗?

4

3 回答 3

2

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

<system.web>
    <sessionState cookieSameSite="None" />
</system.web>
于 2020-01-31T22:33:50.707 回答
0

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

您可以使用

Request.Cookies[ASP.Net_SessionId"]

反而。我解决了 Request 对象并解决了问题。

于 2020-03-10T15:23:47.587 回答
0

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>
于 2020-01-28T17:13:16.767 回答