ASP .NET_SessionId cook ie значение всегда Lax в SameSite - PullRequest
1 голос
/ 28 января 2020

У меня есть веб-приложение ASP. NET, и приложение должно открываться в фрейме на другом сайте, т.е. оно должно поддерживать межсайтовые куки. Я хочу установить SameSite = Нет; Безопасный в веб-приложении. Я помещаю

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

в Web.config, но значение SameSite в файле cook ie ASP .NET_SessionId всегда Lax . Я делаю правильную настройку в web.config?

Ответы [ 3 ]

2 голосов
/ 01 февраля 2020

Атрибут <httpCookies sameSite="..."> в Web.config не влияет на ASP .NET_SessionId cook ie. Вместо этого установите атрибут <sessionState cookieSameSite="...">:

<system.web>
    <sessionState cookieSameSite="None" />
</system.web>
0 голосов
/ 10 марта 2020

Вам не нужно обращаться к файлам cookie объекта Response в Session_Start ? Каждый раз, когда начинается новый сеанс ... Cook ie NOT YET недоступен.

Вместо него можно использовать

Request.Cookies[ASP.Net_SessionId"]

. Я обратился к объекту запроса, и проблема решена.

0 голосов
/ 28 января 2020

После записи приведенного ниже кода в Global.asax я могу довести значение SameSite до Нет .

        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;
        }
...