【发布时间】:2014-03-26 19:16:34
【问题描述】:
我无法从 web api 2 中获取会话数据。我已验证 cookie 正在 fiddler 中发送。
我知道 web api 2 的最佳实践是无状态的,但由于项目的要求,现在必须是有状态的。
我已经尝试过这个链接。 WebAPI 2 attribute routing enable session state
var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)
通过上述解决方案,我在该函数上得到了一个空异常。
我还尝试通过修改路由中的请求处理程序来复制旧 Web api 中的执行方式,但这在 web api 2 中不可用。
我目前在 mvc5 中设置了一些会话变量。这有效并且会话保持不变,但是每当我在 web api 2 中尝试使用会话时,以下为空。
HttpContext.Current.Session
【问题讨论】:
-
您不仅需要确认cookie已发送;您需要确认它是在 MVC 应用程序中使用的 same 会话 ID cookie。我敢打赌你有两个不同的会话 ID。
-
它们没有什么不同。我还验证了它们是相同的 sessionID。
-
@JohnSaunders 我遇到了你所说的情况——我得到了不同的会话 ID。为什么会这样?
标签: c# asp.net session asp.net-web-api asp.net-web-api2