在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
答案 0 :(得分:0)
我在这里发布了类似问题的答案,如果有其他人登陆这个帖子的话我也会与之斗争。一个BaseController类也可能是你的答案,因为维护只在1个控制器中,其余的将继承:
session becoming null in MVC AuthorizeAttribute
希望将来帮助某人!