Web Api 2会话

时间:2014-02-24 21:29:19

标签: c# asp.net session asp.net-web-api asp.net-web-api2

我无法从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

2 个答案:

答案 0 :(得分:53)

添加

protected void Application_PostAuthorizeRequest() 
{
    System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}

到global.asax

答案 1 :(得分:1)

如果PostAuthorizeRequest不起作用,请尝试使用BeginRequest。