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

时间:2013-11-03 21:15:57

标签: asp.net-web-api asp.net-web-api-routing

我们想出了如何使用webapi Sample here

启用会话状态

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

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

3 个答案:

答案 0 :(得分:7)

您需要将其添加到 global.asax

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

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

HttpContext.Current.Session

答案 1 :(得分:-1)

global.asax

中的

Private Sub WebApiApplication_PostAuthorizeRequest(sender As Object, e As EventArgs) Handles Me.PostAuthorizeRequest
     System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required)
End Sub

答案 2 :(得分:-2)

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

var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)

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