3

在 Mvc3 中,我在实现 IRouteConstraint 接口时创建了自己的 RouteConstraint 类,这意味着我实现了 Match 函数。唯一但严重的问题是,每当调用 Match 函数时,会话对象始终为空。

我的简单代码如下所示:

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;
}

我无法避免使用会话对象,因为我需要登录管理员的“级别”/“类型”。我也不想在 cotroller 课上做我的事情,因为按时间维护会很麻烦。

谢谢, 加博尔

4

1 回答 1

0

如果其他人登陆这篇文章,我在会话状态上发布了一个类似问题的答案。BaseController 类也可能是您的答案,因为维护将仅在 1 个控制器中进行,其余的将继承:

会话在 MVC AuthorizeAttribute 中变为空

希望它对将来的人有所帮助!

于 2014-11-13T14:32:11.090 回答