ASP.NET 会话在 Chrome 中丢失
ASP.NET Session lost in Chrome
我 post 这个问题是因为我花了很多时间来寻找解决方案,但在 SO 上一无所获。
我正在使用 .NET
WebAPI
作为后端并将用户信息存储在会话中。
由于任何原因,session
在 Chrome 中丢失了。
我在第一次请求时收到带有会话 ID 的 Set Cookie,但会话未在 Chrome 中设置,而是在 IE 中设置。
我尝试更改 web.config 几次并更改服务器的配置,但没有任何改变。
我正在使用 fetch
API 来调用我的服务。
Fetch does not send cookies by default. If your cookies are not HTTP only,您必须在 headers collection.
中手动设置它们
问题出在抓取上,而不是服务器端。
奇怪的是它可以在 IE 上运行。显然 IE 没有相同的获取策略 API.
您必须确保将 属性 credentials
添加到 include
或 same-origin
以根据您的要求保持会话。
警告:将凭证输入 include
在 Chrome 中引发安全错误。
same-origin
值解决了我的问题。
请求示例:
fetch(uri,{
method:'GET',
credentials:'same-origin'
})
.then()
.catch()
我 post 这个问题是因为我花了很多时间来寻找解决方案,但在 SO 上一无所获。
我正在使用 .NET
WebAPI
作为后端并将用户信息存储在会话中。
由于任何原因,session
在 Chrome 中丢失了。
我在第一次请求时收到带有会话 ID 的 Set Cookie,但会话未在 Chrome 中设置,而是在 IE 中设置。
我尝试更改 web.config 几次并更改服务器的配置,但没有任何改变。
我正在使用 fetch
API 来调用我的服务。
Fetch does not send cookies by default. If your cookies are not HTTP only,您必须在 headers collection.
中手动设置它们问题出在抓取上,而不是服务器端。
奇怪的是它可以在 IE 上运行。显然 IE 没有相同的获取策略 API.
您必须确保将 属性 credentials
添加到 include
或 same-origin
以根据您的要求保持会话。
警告:将凭证输入 include
在 Chrome 中引发安全错误。
same-origin
值解决了我的问题。
请求示例:
fetch(uri,{
method:'GET',
credentials:'same-origin'
})
.then()
.catch()