Question

J'essaie de suivre des exemples de la configuration de Web API pour utiliser des jetons porteurs avec ASP.NET Identity 2.0 et je suis rencontré dans un HICCUP. Suivant ce tutoriel http://www.asp. NET / Web-API / Vue d'ensemble / Sécurité / Comptes individuels-In-Web-API Il indique que je devrais pouvoir poster à http:// {serveurName} / jeton pour obtenir un jeton au porteur. Lorsque je fais cela, je reçois une exception pour le château Windsor lorsqu'il essaie de résoudre le jeton en tant que contrôleur.

Qu'est-ce que j'essaie d'accomplir globalement est de vous connecter à l'aide du contrôleur de compte en conserve, puis de récupérer un jeton. J'essaie d'utiliser à la fois des cookies et des jetons porteurs.

  1. Est-ce la bonne approche pour utiliser le contrôleur de compte par défaut pour authentifier?
  2. Si ce n'est pas la bonne approche, devrais-je suivre le tutoriel de plus près et avoir l'utilisateur de vous connecter à un contrôleur API?
  3. Que dois-je faire pour ma configuration COI pour vous assurer que mes points de fin résolvent?
Était-ce utile?

La solution

L'autorisation dans WebAPI doit être traitée dans un message de messagerie, pas au niveau du contrôleur.

Vous devez créer un MessageHandler Responsable pour vérifier un jeton OAuth Berarer: ce gestionnaire de message peut (devrait) résoudre votre CIO et que configuré dans le pipeline WebAPI.

public static void RegisterGlobalHandlers(HttpConfiguration config, IWindsorContainer container)
{
    var authorizationMessageHandler = container.Resolve<AuthorizationMessageHandler>();
    config.MessageHandlers.Add(authorizationMessageHandler);
}

DotNetopenoauth est un endroit idéal pour commencer: regarde le MISSION de la mise en œuvre de l'échantillon / du gestionnaire de messages MVC5 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top