1

サービスをインスタンス化し、Application_PreRequestHandlerExecute() メソッド内で現在のユーザーを認証してから、global.asax.cs クラスの * Application_PostRequestHandlerExecute() メソッドでこのサービスを破棄しようとしています。このプロセスに必要な項目の 1 つは、URL ルートの先頭に追加される組織名です。「{orgName}/{controller}/{action}/{id}」のようなルートをマッピングしました

だから私の質問は、ASP.Net MVC アプリケーション内で、Application_PreRequestHandlerExecute() イベント内のルーティング情報にアクセスする (または何らかの方法で私のインスタンスの "orgname" にアクセスする) ことは可能ですか? これが不可能な場合は、MvcHandler にフックして同様のことを行う別の方法があります (カスタム フィルターを作成する必要がありますか?)

4

1 に答える 1

1

すべてのルート値を見つけるには、「RequestContext」が必要です。コントローラーの内部以外でそれらを取得する方法はわかりません。

「ActionFilterAttribute」を実装してから、それでコントローラーを装飾する必要があります。

ActionFilterにはメソッドがあります

//     Called after the action method executes.
public virtual void OnActionExecuted(ActionExecutedContext filterContext);
//     Called before the action method executes.
public virtual void OnActionExecuting(ActionExecutingContext filterContext);

であらゆる種類の楽しいことができます。

于 2009-03-18T21:04:36.173 に答える