2017-09-25 83 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 
     }; 
    } 
}