Utilisation de l'autorisation personnalisée dans MVC 4

Je suis en train de développer une API Web à l'aide de la MVC 4 web API type de projet. Je suis actuellement à un stade où j'ai besoin d'ajouter un peu de sécurité à l'API. Je suis conscient de l'Autoriser attribut, cependant, le client préfère une approche différente.
Pour cela, j'ai essayé de remplacer les Autoriser attribut dans ma propre classe et qu'une base de départ, j'ai tout simplement avoir le AuthorizeCore retourne toujours false, ce qui signifie pas authentifié. Si je puis ajouter à une Action au sein d'un contrôleur, l'action se termine toujours et j'ai toujours récupérer les données.
Je crois que la raison peut être due à l'attribut personnalisé n'étant pas inscrit dans le web.fichier de config, cependant, je ne sais pas comment aller à ce sujet lorsque vous n'utilisez pas l'authentification par formulaires.

Le code que j'utilise est un test frais MVC 4 web API projet avec l'attribut personnalisé illustré ci-dessous.

public class Auth : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        return false;
    }
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new RedirectResult("http://www.google.com");
    }
}

J'ai ensuite ajouté l'attribut sur la méthode Get de la valeur par défaut ValuesController en tant que tel

[Auth]
public IEnumerable<string> Get()

Cependant, lorsque je navigue de domaine/api/Valeurs je suis toujours présentées avec les données à la place de l'rediriger vers google. Toute aide est appréciée.

Edit: Après en cherchant un peu plus j'ai trouvé ça ici: http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx Cela donne à penser que j'ai mal choisi le mauvais AuthorizeAttribute classe que j'avais choisi celui de Système.Web.MVC plutôt que celui de Système.Web.Http. Il semble que la version du protocole Http ne permet pas le même niveau de configuration, comme le MVC version qu'il ne m'autorise pas à remplacer la AuthorizeCore. Plus de l'aide sur ce qui est apprécié.

source d'informationauteur bruinbrown | 2012-10-14