Mvc3 RouteConstraint - сеанс пуст

В Mvc3 я создал собственный класс RouteConstraint при реализации интерфейса IRouteConstraint, что означает, что я реализовал функцию Match. Единственная, но серьезная проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда вызывается функция Match, объект сессии всегда имеет значение null.

Мой простой код выглядит так:

public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
    if (routeDirection != RouteDirection.IncomingRequest)
    {
        return true;
    }

    HttpSessionStateBase sessionBase = httpContext.Session; // will be null
    HttpSessionState session = HttpContext.Current.Session; // this will be null either

    return true;
}

Я не могу избежать использования объекта сеанса, так как мне нужен "уровень"/"тип" вошедшего в систему администратора. Я также не хотел бы заниматься своими делами в классе "колокольчик", потому что было бы неудобно поддерживать время.

Спасибо Габор

1 ответ

Я разместил ответ на аналогичный вопрос здесь о состояниях сеанса, с которыми я тоже боролся, если кто-то еще зайдет на этот пост. класс BaseController также может быть вашим ответом, так как обслуживание будет осуществляться только на 1 контроллере, а остальные будут наследоваться:

сессия становится пустой в MVC AuthorizeAttribute

Надеюсь, это поможет кому-то в будущем!

Другие вопросы по тегам