Pregunta

He estado tratando de seguir ejemplos de cómo configurar la API web para usar tokens portadores con ASP.NET Identity 2.0, y me he encontrado con un HICCUP. Siguiendo este tutorial http://www.asp. NET / WEB-API / DESCRIPCIÓN GENERAL / SEGURIDAD / CUENTAS INDIVIDUALES: API en la WEB-API establece que debería poder publicar en http:// {servername} / token para obtener un token de portador. Cuando hago esto, obtengo una excepción para el Castillo Windsor cuando intenta resolver token como un controlador.

Lo que estoy tratando de lograr en general es iniciar sesión utilizando el controlador de cuenta enlatado y luego recuperar un token. Estoy tratando de usar tokens de cookies y portadores.

  1. ¿Este enfoque correcto para usar el controlador de cuenta predeterminado para autenticar?
  2. Si este no es el enfoque correcto, ¿debería seguir el tutorial más estrechamente y tener el inicio de sesión de usuario contra un controlador API?
  3. ¿Qué necesito hacer para mi configuración de IOC para asegurarme de que mis puntos finales se resuelvan?
¿Fue útil?

Solución

La autorización en WEBAPI debe manejarse en un MensajeHandler, no en el nivel del controlador.

Debe crear un MensajeHandler que responda para verificar un token de OAUTH BERARER: Ese controlador de mensajes puede resolverse con su COI y que configurarse en la tubería WEBAPI.

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

DotNetOpenoAuth es un gran lugar para comenzar: Echa un vistazo a la Implementación de MVC5 Muestra / Mensaje de Mensaje .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top