2017-09-25 4 views
1

Je souhaite interdire l'accès à certaines méthodes Web le week-end. Un filtre d'action semblait être le véhicule naturel pour cela.Exécution silencieuse de l'API Web WEB

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); 
    } 
} 

Ceci fonctionne mais je ne veux pas vraiment lancer un Exception. Que puis-je utiliser à la place du Exception pour simplement refuser l'entrée?

Répondre

0

Vous pouvez définir la réponse dans la méthode. Ici, j'ai utilisé Unauthorized mais vous pouvez changer cela pour ce qui est approprié.

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 
     }; 
    } 
}