3

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

ログインした管理者の「レベル」/「タイプ」が必要なため、セッション オブジェクトの使用は避けられません。時間までに維持するのが面倒になるので、私はコントローラークラスでも自分のことをしたくありません。

ありがとう、ガボール

4

1 に答える 1

0

他の誰かがこの投稿にたどり着いた場合、私も戦ったセッション状態に関する同様の質問への回答を投稿しました。メンテナンスは1つのコントローラーのみで行われ、残りは継承されるため、 BaseController クラスも答えになる可能性があります。

セッションが MVC AuthorizeAttribute で null になる

将来誰かに役立つことを願っています!

于 2014-11-13T14:32:11.090 に答える