ajax跨域访问Web API SessionId不一致问题

要做一个登录验证的功能,采用前后端分离的方式,后端使用.Net开发的WebAPI, 在登录的时候调用API的登录接口,成功后生成一个token,返回给前端,API把token保存在session中。在调用其它方法时,前端把token传到API,API从session
获取到token和前端传来的比对,但是获取不到session中的token,发现登录的时候sessionID和调用其它接口时的sessionID不一样。API的SupportsCredentials也设置了true,ajax中设置了widthCredentials为true,问题依据。静候指点迷津!

img

img

img

img

session对应的cookie没有设置成功,被拦截了,鼠标移动到感叹号上会有原因。

img

就算能设置成功,由于samesite是lax,也不会发送cookie值。以下截图来源:

img

将ajax请求接口改为https协议,设置SameSite=None; Secure

asp.net_sessionid是core自动生成,要改下配置,参考下面的文章


不过建议是将asp.net_sessionid的值当做内容输出,ajax获取到值后保存到localStorage中,然后客户端ajax发送请求时将身份信息放在自定义头中发送出去或者当做数据发送给服务器端,服务器端从请求头或者信息体中获取验证信息
有帮助或启发麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~