【问题标题】:Silently prevent WEB API Method execution静默阻止 WEB API 方法执行
【发布时间】:2017-09-25 17:41:33
【问题描述】:

我想在周末拒绝某些网络方法的访问。动作过滤器似乎是实现这一目标的自然工具。

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 来默默地拒绝进入?

【问题讨论】:

    标签: asp.net-web-api2 action-filter onactionexecuting


    【解决方案1】:

    您可以在方法中设置响应。这里我使用了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
            };
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多