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
Надеюсь, это поможет кому-то в будущем!