Mvc3 RouteConstraint - Нулевая сессия - PullRequest
3 голосов
/ 22 августа 2011

В 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 Ответ

0 голосов
/ 13 ноября 2014

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...