Autenticación en .NET Web API usando MVC FormsAuthentication

Tenemos una aplicación de una sola página que usa el marco AngularJS que necesita hablar con una API implementada en la API web de .NET 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 aplicación de página única MVC. Esto utiliza FormsAuthentication para otorgar acceso a la API.

Utilizamos Fiddler para depurar. Cuando visitamos un controlador en la API que requería autenticación directamente en el navegador, pudimos confirmar que el usuario estaba realmente 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 la API web de .NET a través de XMLHttpRequests.

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

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

¡PD! La autenticación de formularios funciona con los controladores de la API web de .NET mediante el uso del atributo [Autorizar]. Es solo que no se puede acceder a los controladores con XMLHttpRequests.

Captura de pantalla de Fiddler al usar 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

Respuestas a la pregunta(1)

Su respuesta a la pregunta