Mvc3 では、IRouteConstraint インターフェイスを実装したときに、独自の RouteConstraint クラスを作成しました。つまり、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;
}
ログインした管理者の「レベル」/「タイプ」が必要なため、セッション オブジェクトの使用は避けられません。時間までに維持するのが面倒になるので、私はコントローラークラスでも自分のことをしたくありません。
ありがとう、ガボール