Web Api 2会话

kev*_*ley 17 c# asp.net session asp.net-web-api asp.net-web-api2

我无法在web api 2中获取会话数据.我已经验证了cookie是在fiddler中发送的.

我知道web api 2的最佳实践是无状态,但由于对项目的要求,现在必须满足状态.

我试过这个链接. WebAPI 2属性路由启用会话状态

var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)
Run Code Online (Sandbox Code Playgroud)

通过上面的解决方案,我在该函数上获得了一个null异常.

我还尝试通过修改路由中的请求处理程序,以旧方式api的方式复制这种方式,但这在web api 2中不可用.

我目前在mvc5中设置了一些会话变量.这工作和会话保持不变,但无论何时我在web api 2中尝试使用会话,下面的内容都是null.

HttpContext.Current.Session
Run Code Online (Sandbox Code Playgroud)

Dej*_*ejo 53

protected void Application_PostAuthorizeRequest() 
{
    System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}
Run Code Online (Sandbox Code Playgroud)

到global.asax

  • 我不确定我是否正确测试,但对我来说,在mvc控制器和api控制器中检索时sessionId是不同的,这对我来说没用. (2认同)