Authentifizierung in der .NET-Web-API mit MVC FormsAuthentication

Wir haben eine Anwendung für eine einzelne Seite, die das AngularJS-Framework verwendet und mit einer in .NET Web API implementierten API in einer anderen Domäne kommunizieren muss.

Das Problem

Die API ist in der .NET-Web-API implementiert. Um einen Benutzer für den Zugriff auf unsere API zu authentifizieren, haben wir die MVC Single Page Application-Vorlage implementiert. Hierbei wird FormsAuthentication verwendet, um den Zugriff auf die API zu gewähren.

Wir haben Fiddler zum Debuggen verwendet. Als wir einen Controller auf der API besuchten, der eine Authentifizierung direkt im Browser erforderte, konnten wir bestätigen, dass der Benutzer tatsächlich authentifiziert wurde. Bei der Ausführung einer XMLHttpRequest wurden, wie vermutet, keine Authentifizierungscookies in den Headern gesendet.

Dazu möchten wir FormsAuthentication verwenden, um hoffentlich über XMLHttpRequests auf die .NET-Web-API zuzugreifen.

Eine vorgeschlagene Lösung für dieses Problem bestand darin, Sitzungen zwischen der .NET-Web-API und der MVC freizugeben. Wie können wir den Status zwischen der .NET-Web-API und dem MVC-Teil des Projekts auf einfache Weise aufrechterhalten?

Wir wissen, dass es nicht sehr RUHIG ist, aber wir brauchen eine schnelle Lösung für dieses Problem.

PS! Die FormsAuthentication funktioniert mit den .NET-Web-API-Controllern mithilfe des Attributs [Authorize]. Es ist nur so, dass die Controller nicht mit XMLHttpRequests zugegriffen werden können.

Screenshot von Fiddler bei Verwendung von XMLHttpRequest

Screenshot von Fiddler, wenn die Anfrage direkt im Browser erfolgt

Screenshot eines zu testenden Authentifizierungscontrollers

Antworten auf die Frage(1)

Ihre Antwort auf die Frage