ASP.NET会话在Chrome中丢失

时间:2017-08-22 14:43:49

标签: asp.net google-chrome fetch

我发布这个问题因为我已经花了很多时间找到解决方案而在SO上找不到这个。

我使用.NET WebAPI作为后端,并在会话中存储用户信息。

出于任何原因, Chrome session丢失了。

我在第一次请求时收到带有会话ID的Set Cookie,但会话未在Chrome中设置,但在IE中设置。

我尝试多次更改web.config并更改服务器的配置但没有任何更改。

我正在使用fetch API来拨打我的服务。

2 个答案:

答案 0 :(得分:0)

默认情况下,

Fetch不会发送Cookie。如果您的Cookie不是HTTP only,则必须在标题集合中手动设置它们。

答案 1 :(得分:0)

问题在于获取而不是服务器端。

奇怪的是,它在IE上工作。显然,IE对fetch API没有相同的策略。

您必须确保将属性credentials添加到includesame-origin,以便根据您的请求保留会话。

警告:将凭据置于include会在Chrome中触发安全错误。 same-origin值解决了我的问题。

请求示例:

fetch(uri,{
   method:'GET',
   credentials:'same-origin'
})
.then()
.catch()