WebAPI 2属性路由启用会话状态

mam*_*amu 11 asp.net-web-api asp.net-web-api-routing

我们想出了如何在这里使用webapi Sample启用会话状态

现在我们有WebApi 2属性路由,所以我们不再有路由对象来注入自定义处理程序.

有没有办法使用属性路由启用会话状态?

Dal*_*rzo 7

您需要将其添加到global.asax

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

然后您可以通过以下方式访问会话:

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


Ian*_*son -2

您可以使用SessionStateUtility类来获取会话状态。只需致电:

\n\n
var\xc2\xa0session =\xc2\xa0SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)\n
Run Code Online (Sandbox Code Playgroud)\n\n

Api 控制器是为静态服务而设计的,通常应该是无状态的。不每次都加载会话是使它们更轻的原因之一。

\n