2017-09-25 8 views
1

週末に特定のWebメソッドへのエントリを拒否したいとします。アクションフィルタは、そのための自然な乗り物のように見えました。WEB APIメソッドの実行をサイレントに防止する

public class RunMonThruFriAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(HttpActionContext actionContext) 
    { 
     var today = DateTime.Now.DayOfWeek;   
     if (today == DayOfWeek.Saturday || today == DayOfWeek.Sunday) 
      throw new CustomException("Outside allowed or day time", 999); 
    } 
} 

これは動作しますが、私は本当にExceptionをスローする必要はありません。入力を黙って拒否するには、Exceptionの代わりに何を使用できますか?

答えて

0

このメソッドでレスポンスを設定できます。ここではUnauthorizedを使用しましたが、これを適切なものに変更することができます。

public override void OnActionExecuting(HttpActionContext actionContext) 
{ 
    var today = DateTime.Now.DayOfWeek;   
    if (today == DayOfWeek.Saturday || today == DayOfWeek.Sunday) 
    { 
     actionContext.Response = new System.Net.Http.HttpResponseMessage 
     { 
      StatusCode = System.Net.HttpStatusCode.Unauthorized, // use whatever http status code is appropriate 
      RequestMessage = actionContext.ControllerContext.Request 
     }; 
    } 
} 
関連する問題