ASP.NET MVC下服务器响应头没有set-cookie,导致每次请求都生成新的sessionID
使用session时,在不带ASP.NET_SessionId这个cookie去请求的时候,服务器端会生成一个sessionID放到cookie里面,下次带过去。
但是在ASP.NET MVC4项目中,每次请求服务器端都生成了新的sessionID,因为服务器端的headers里面没有set-cookie这一项,实在很让人困惑啊。
对比webform项目和asp.net mvc4项目如下(都是示例项目)
webform:
在请求头中没有cookie的时候,服务器端有set-cookie
ASP.NET MVC4:
因为都是开发服务器(domain都是localhost),所以关闭浏览器程序打开,再去测试mvc的
可以看到客户端没有cookie,服务器端也没有set-cookie,这就导致每次请求得到的都是一个新的sessionID
不知道大家有没有遇到过这个问题。。我也觉得很奇怪,不知道问题出在哪里,用cookieless模式是正常的。
求助啊
------解决方案--------------------你session里有存值吗
session没有存值的情况下是不会在服务器端生成的
------解决方案--------------------若服务器没有设置cookie 和Session
客户端的SessionID 每次都是变化的,每次都new一个
一旦设置 设置cookie或Session任意一个,sessionID将固定下来。
------解决方案--------------------
为什么需要生成sessionID?直接说下需求吧
session不存在的话,就算生成sessionid,下次访问也无法找到匹配的session的