【发布时间】:2013-11-14 12:15:35
【问题描述】:
【问题讨论】:
标签: asp.net-web-api asp.net-web-api-routing
【问题讨论】:
标签: asp.net-web-api asp.net-web-api-routing
您可以使用SessionStateUtility 类来获取会话状态。只需致电:
var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)
Api 控制器专为 RESTful 服务而设计,通常应该是无状态的。不是每次都加载会话是使它们更轻的原因之一。
【讨论】:
Application_PostAuthorizeRequest 事件中写入System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required); 行global.asax。 Check this answer here
您需要将此添加到 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
【讨论】: