Mvc3 RouteConstraint - 会话为空

时间:2011-08-22 13:12:16

标签: asp.net-mvc-3 session-state route-constraint

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

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

谢谢,Gabor

1 个答案:

答案 0 :(得分:0)

我在这里发布了类似问题的答案,如果有其他人登陆这个帖子的话我也会与之斗争。一个BaseController类也可能是你的答案,因为维护只在1个控制器中,其余的将继承:

session becoming null in MVC AuthorizeAttribute

希望将来帮助某人!