HttpContext.Current.Items[“value”] not working because AngularJS calls create new sessions
我正在使用C#,MVC和AngularJS。
我的问题是我的MVC程序创建了一个
我有什么办法可以解决这个问题吗? 我想继续使用
为什么我的AngularJS调用会创建新的会话? 我知道会话是新的原因是因为我使用它时它们有不同的ID:
1 | String strSessionId = HttpContext.Session.SessionID; |
1 2 3 4 5 | // Will last until the end of the current request HttpContext.Current.Items["key"] = value; // When the request is finished, the value can no longer be retrieved var value = HttpContext.Current.Items["key"]; |
1 2 3 4 5 6 | // Will be stored until the user's session expires HttpContext.Current.Session["key"] = value; // You can retrieve the value again in the next request, // until the session times out. var value = HttpContext.Current.Session["key"]; |
您的
会话状态取决于cookie,因此如果将相同的cookie发送回服务器,则可以检索存储在那里的数据。 幸运的是,如果您在同一个域中,AJAX会自动将cookie发送回服务器。
对于SessionID的更改,ASP.NET在使用之前不会为会话分配存储空间。 因此,您需要在会话状态中明确存储某些内容才能实际启动会话。 有关更多信息,请参阅此MSDN文章。