いくつかのロジックがSession_Start
あり、このロジックは、1 つの特別なメソッドを除くすべてのコントローラー メソッドで実際に使用されます。Session_start
ユーザーが特別なメソッド URL にアクセスしたときに、ロジックを実行する必要はありません。
どのように私はそれを行うことができますか?
いくつかのロジックがSession_Start
あり、このロジックは、1 つの特別なメソッドを除くすべてのコントローラー メソッドで実際に使用されます。Session_start
ユーザーが特別なメソッド URL にアクセスしたときに、ロジックを実行する必要はありません。
どのように私はそれを行うことができますか?
私があなたの質問を理解している限り、特別な 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 オブジェクトにアクセスし、そこでチェックを実行できます。