Domanda

Ho cercato di seguire esempi di come configurare l'API Web per utilizzare token portatore con ASP.NET Identity 2.0, e ho incontrato un singhiozzo. Seguendo questo tutorial http://www.asp. Net / Web-API / Panoramica / Sicurezza / Account individuali-In-Web-API Dichiara che dovrei essere in grado di postare su http:// {servername} / token per ottenere un token del portatore. Quando lo faccio, ottengo un'eccezione per il castello Windsor quando cerca di risolvere il token come controller.

Che cosa sto cercando di realizzare nel complesso è l'accesso utilizzando utilizzando il controller account in scatola e quindi recuperare un token. Sto cercando di usare entrambi i cookie e i token del portatore.

    .
  1. è questo approccio giusto per utilizzare il controller account predefinito per l'autenticazione?
  2. Se questo non è l'approccio corretto, dovrei seguire il tutorial più da vicino e avere l'utente accedere a un controller API?
  3. Cosa devo fare per la mia configurazione IOC per assicurarmi che i miei punti finali risolvano?
È stato utile?

Soluzione

Autorizzazione in WebAPI deve essere gestita in un messaggio di messaggi, non a livello del controller.

È necessario creare un messaggio di messaggi responsabile per verificare un token di Berarer OAuth: quel gestore del messaggio può (dovrebbe) risolto con il tuo IOC e che configurato nella pipeline WebAPI.

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

DotNetOtopenoAuth è un ottimo posto per iniziare: Dai un'occhiata a MVC5 Sample / Message Handler Implementazione .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top