В 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;
}
Я не могу избежать использования объекта сеанса, так как мне нужен «уровень» / «тип» вошедшего в систему администратора. Я бы тоже не хотел заниматься своими делами в классе «колокольчик», потому что было бы неудобно поддерживать время.
Спасибо, Габор