Маршрутизация атрибута WebAPI 2 включает состояние сеанса
Мы выяснили, как включить состояние сеанса с помощью webapi Пример здесь
Теперь у нас есть маршрутизация атрибутов WebApi 2, поэтому у нас больше нет объекта маршрута для ввода пользовательского обработчика.
Есть ли способ включить сеансовое состояние с маршрутизацией атрибутов?
Ответы
Ответ 1
Вам нужно добавить это в global.asax
protected void Application_PostAuthorizeRequest()
{
System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}
Затем вы можете получить доступ к сеансу через:
HttpContext.Current.Session
Ответ 2
в 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
Ответ 3
Вы можете использовать класс SessionStateUtility, чтобы получить состояние сеанса. Просто позвоните:
var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)
Контроллеры Api предназначены для обслуживания клиентов и, как правило, не имеют апатридов. Не загружая сессию каждый раз, это одна из вещей, которая делает их более легкими.