ASP.NET未发送会话cookie

ASP.NET未发送会话cookie,asp.net,session,session-cookies,Asp.net,Session,Session Cookies,什么会导致ASP.NET不向客户端发送会话cookie 我注意到,首先,Request.Cookies和Response.Cookies集合中都设置了“ASP.NET\u SessionId”cookie。有趣的是,cookie实际上不是请求的一部分,而是请求。Cookies集合似乎是实际随请求发送的Cookies和响应中的Cookies的动态组合。因此,如果向Response.Cookies集合添加cookie,它将立即反映在Request.Cookies集合中 无论如何。。。。cookie肯

什么会导致ASP.NET不向客户端发送会话cookie

我注意到,首先,
Request.Cookies
Response.Cookies
集合中都设置了“ASP.NET\u SessionId”cookie。有趣的是,cookie实际上不是请求的一部分,而是
请求。Cookies
集合似乎是实际随请求发送的Cookies和响应中的Cookies的动态组合。因此,如果向
Response.Cookies
集合添加cookie,它将立即反映在
Request.Cookies
集合中

无论如何。。。。cookie肯定在
Response.Cookies
集合中。您甚至可以通过调用
new SessionIDManager().SaveSessionID(HttpContext.Current,HttpContext.Current.Session.SessionID,out redirected,out cookieAdded)两次将其放入其中。
,cookieAdded将返回true,现在将有两个名为“ASP.NET_SessionID”的条目,而不是一个

但是cookie永远不会与响应一起发送。哪种代码或条件集决定不发送带有响应的“ASP.NET_SessionId”cookie,即使它位于
response.Cookies
集合中

我现在遇到的触发它的条件是,我将我的MVC基本控制器标记为
[SessionState(SessionStateBehavior.ReadOnly)]
,这是ASP.NET MVC并行处理多个同时发生的AJAX请求所必需的;否则,它会将会话视为共享状态,并在同一会话id下序列化请求处理。由于我没有将数据存储在标记为只读的“真实”会话中,我实际上是将会话数据存储在静态位置并自行管理并发性,但我仍然使用ASP.NET生成的会话id来跟踪它(聪明,是吗?)。问题是,如果不发送cookie,SessionID会随着每个新请求而变化,因此每次我都会忘记用户的会话。我似乎无法强制系统发送cookie;有些东西故意不发送它。

相关:相关: