donnie_regan Ответов: 0

Проблема Webapi и сеансов


Я пытаюсь добавить sessionstate к моему существующему asp.net применение. Я добавил
httpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required)

но каждый раз, когда я делаю вызов api, создается новый сеанс.

Вот как я пытаюсь просмотреть сеанс
var session = HttpContext.Current.Session;
            if (session != null)
            {
                if (session["TestSession"] == null)
                {
                    session["TestSession"] = DateTime.Now;
                }
                return "TestSession: " + session["TestSession"];
            }

            return ("No Session");

Просто интересно, если кто-то еще сталкивался с этой проблемой, я использую sqldatabase состояния сеанса для хранения сеанса

Что я уже пробовал:

я пробовал добавлять свойство HttpContext.Тока.SetSessionStateBehavior (SessionStateBehavior.Обязательно) до глобальных.эйсакс

а затем загрузка значения из сеанса

ZurdoDev

Установлен ли в вашем веб-методе флаг EnableSession?

[WebMethod(EnableSession = true)]
общественные строку сделать(строковое значение)
{


}

donnie_regan

Это мой контроллер webapi, я пытался установить enableSession в true здесь, но это не имело никакого значения.

публичный строковый индекс()
{

ВАР сессии = свойство HttpContext.Тока.Сессия;

if (session != null)
{
if (session ["TestSession"] = = null)
{
session ["TestSession"] = DateTime. Now;
}
возврат "TestSession:" + session ["TestSession"];
}

return ("нет сеанса");
}

ZurdoDev

Видишь http://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api

donnie_regan

Спасибо, что я попробовал это сделать, но он все еще создает новый сеанс каждый раз, он должен быть установлен в другом месте в существующем приложении, которое его вызывает.

Kornfeld Eliyahu Peter

Где в Global. asax находится эта линия?

donnie_regan

в методе Application_PostAuthorizeRequest()

0 Ответов