tutorial por net mvc example ejemplo basada autenticacion asp asp.net-web-api xmlhttprequest cross-domain forms-authentication session-cookies

asp.net web api - por - Autenticación en.NET Web API usando MVC FormsAuthentication



web api authentication token example (1)

Esta es una solicitud CORS . Puede usar la biblioteca Microsoft.AspNet.WebApi.Cors.

Solo es necesario agregar UNA línea en webapi config para usar CORS en ASP.NET WEB API:

config.EnableCors("*","*","*");

Ver esto para más detalles .

Tenemos una aplicación de una sola página que utiliza el framework AngularJS que necesita hablar con una API implementada en .NET Web API en un dominio diferente.

El problema

La API se implementa en .NET Web API. Para autenticar a un usuario para acceder a nuestra API implementamos la plantilla de la aplicación de página única de MVC. Esto usa FormsAuthentication para otorgar acceso a la API.

Usamos Fiddler para depurar. Cuando visitamos un controlador en la API que requería autenticación directamente en el navegador, pudimos confirmar que el usuario sí estaba autenticado. Cuando hicimos un XMLHttpRequest, como se sospechaba, no se enviaron cookies de autenticación en los encabezados.

Lo que nos gustaría lograr es utilizar FormsAuthentication para acceder a .NET Web API con suerte a través de XMLHttpRequests.

Una solución propuesta para esto fue compartir sesiones entre .NET Web API y MVC. ¿Cómo podemos mantener fácilmente el estado entre .NET Web API y la parte MVC del proyecto?

No es muy RESTANTE, lo sabemos, pero necesitamos una solución rápida a este problema.

¡PD! FormsAuthentication funciona con los controladores de .NET Web API utilizando el atributo [Authorize]. Es solo que los controladores no pueden ser accedidos con XMLHttpRequests.

Captura de pantalla de fiddler cuando se usa XMLHttpRequest

Captura de pantalla de fiddler cuando la solicitud se realiza directamente en el navegador

Captura de pantalla de un controlador de autenticación para probar