2016-08-14 14 views
0

私はASP.NET MVCクラウドサービスを持っています。認証されているかどうかにかかわらず、私のサーバーに来るリクエストを監査する必要があります。ASP.NET監査 - system.webServerモジュールを使用

すべてのリクエストとその応答を処理する実際のコントローラに到達する前にそれらの応答を記録したいと思います。 これは私のチームのどの開発者にとっても透過的であり、APIの追加の場合には、要求を監査することを忘れることはありません。

system.webServermodulesこれを達成する正しい方法はありますか? このようなことを達成するためのベストプラクティスは何ですか?

ありがとうございます!

答えて

0

アクションフィルタを作成し、すべての要求に対して実行されるようにグローバルに登録することを検討してください。アクションメソッドが呼び出され、アクションメソッドが呼び出された後OnActionExecutedが呼び出される前に

public class AuditLoggingFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     // Do something 
     base.OnActionExecuting(filterContext); 
    }  
    public override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     // Do something 
    } 
} 

OnActionExecutingが実行されます。

RegisterRoutesの方法(RouteConfig.cs)では、このフィルタをグローバルに登録することができます。

public static void RegisterRoutes(RouteCollection routes) 
{ 
    //Existing code 
    GlobalFilters.Filters.Add(new AuditLoggingFilter()); 
} 
関連する問題