Asp.net web api WebAPI 2属性路由启用会话状态
我们了解了如何使用webapi启用会话状态 现在我们有了WebApi 2属性路由,所以我们不再有用于注入自定义处理程序的路由对象 有没有办法通过属性路由启用会话状态?您可以使用该类获取会话状态。只要打电话:Asp.net web api WebAPI 2属性路由启用会话状态,asp.net-web-api,asp.net-web-api-routing,Asp.net Web Api,Asp.net Web Api Routing,我们了解了如何使用webapi启用会话状态 现在我们有了WebApi 2属性路由,所以我们不再有用于注入自定义处理程序的路由对象 有没有办法通过属性路由启用会话状态?您可以使用该类获取会话状态。只要打电话: var session=SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current) Api控制器是为restful服务设计的,通常应该是无状态的。不每次加载会话是使会话更轻的原因之一。您需要将其添加到glo
var session=SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)
Api控制器是为restful服务设计的,通常应该是无状态的。不每次加载会话是使会话更轻的原因之一。您需要将其添加到global.asax
protected void Application_PostAuthorizeRequest()
{
System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}
然后,您可以通过以下方式访问会话:
HttpContext.Current.Session
在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
@RolandoCC:您需要编写
System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required)在global.asax
中的Application\u postauthorizereRequest
事件中的code>行。我尝试过这种方法,但这种方法有一个严重的缺陷:会话确实存在,但是每个请求的SessionID都不同。