0

いくつかのロジックがSession_Startあり、このロジックは、1 つの特別なメソッドを除くすべてのコントローラー メソッドで実際に使用されます。Session_startユーザーが特別なメソッド URL にアクセスしたときに、ロジックを実行する必要はありません。

どのように私はそれを行うことができますか?

4

1 に答える 1

1

私があなたの質問を理解している限り、特別な URL が要求された場合に Session_Start メソッド内のコードが呼び出されることは望ましくありません。解決したい問題が何であるかを知ることは役立つと思います。今のところ、私の答えは次のとおりです。

Session_Start は一度しか呼び出されないため(少なくとも通常は、セッション モジュールの構成に応じて - 質問に対する私のコメントを参照してください)、これはクライアントが最初に "特別な" URL を呼び出す場合にのみ機能します (たとえば、他の URL を呼び出す前)。別の URL が最初に呼び出された場合、セッションはコードに従って初期化されます。重要: 前述のように、構成によっては、常にセッションが存在します (ただし、この特別なケースでは、Session_Start でカスタム ロジックを実行したくない場合があります)。

Current HttpRequestを使用して、いくつかのプロパティをチェックできます。

// this will (usually) only be called once, on the first request of the client
protected void Session_Start() {
        // perform your check here if this is the url you want to exclude
        if (HttpContext.Current.Request.Url.OriginalString.ToLowerInvariant().EndsWith("something")) {
            return;
        }

        // your initialization here that should not be executed for clients accessing the site using the above url
    }

ご覧のとおり、要求に応じてRequest オブジェクトにアクセスし、そこでチェックを実行できます。

于 2013-09-06T11:19:01.553 に答える