Лучший способ прервать / отменить действие и ответ от ActionFilter

Лучший способ прервать / отменить действие из ActionFilter

У меня есть этот ActionFilter , и предполагается, что он немедленно завершит соединение и вернет 401 Unauthroized:

public class SignInRequired : ActionFilterAttribute 
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // User is verified, continue executing action

        if (Acme.Web.CurrentUser != null)
        {
            return;
        }

        // End response with 401 Unauthorized

        var response = HttpContext.Current.Response;
        response.StatusCode = (int)HttpStatusCode.Unauthorized;
        response.End();

        // Prevent the action from actually being executed

        filterContext.Result = new EmptyResult();
    }
}

Я узнал, как вы можете отмените выполнение действия, установив 'context.Result = new EmptyResult () ` здесь , но я не уверен, что это лучший способ сбросить ответ и закрыть соединение.

16
задан Vadim 3 March 2011 в 21:14
поделиться