我无法从web api 2中获取会话数据。我已经验证了cookie是在fiddler中发送的。
我知道web api 2最佳实践是无状态,但由于对项目的要求,现在必须满足状态。
我试过这个链接。 WebAPI 2 attribute routing enable session state
var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)
通过上述解决方案,我在该函数上获得了一个null异常。
我还尝试通过修改路由中的请求处理程序,以旧方式api的方式复制这种方式,但这在web api 2中不可用。
我目前在mvc5中设置了一些会话变量。这工作和会话保持不变,但无论何时我在web api 2中尝试使用会话时,以下都是null。
HttpContext.Current.Session
答案 0 :(得分:53)
添加
protected void Application_PostAuthorizeRequest()
{
System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}
到global.asax
答案 1 :(得分:1)
如果PostAuthorizeRequest不起作用,请尝试使用BeginRequest。