Meilleur moyen pour interrompre ou annuler l'action et de la réaction de ActionFilter

Meilleur moyen pour interrompre ou annuler l'action de ActionFilter

J'ai ce ActionFilter, et il suppose de mettre fin à la connexion immédiatement et de retourner un 401 Des:

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

J'ai appris comment vous pouvez annuler l'action de l'exécution par la mise en contexte.Résultat = new EmptyResult()` ici, mais je ne suis pas sûr si c'est la meilleure façon d'éliminer la réponse et de fermer la connexion.

aussi vous vous demandez comment faire pour retourner 401. Bien que votre solution fonctionne pour moi, aucun de réponse m'a aidé.

OriginalL'auteur AgileMeansDoAsLittleAsPossible | 2011-03-03