ASP.net Core-Authentifizierungs-Cookie wird in Google Chrome nicht festgelegt, wenn er im Entwicklungsprogramm ausgeführt wird

9

Ich habe drei Anwendungen in meiner Lösung, alle in asp.net Core 1 MVC 6 gebaut.

  • App 1 ist eine MVC-App, die zum Authentifizieren eines Benutzers verwendet wird.
  • App 2 ist eine Angular SPA App und ist die Hauptanwendung in der Lösung.
  • App 3 ist eine MVC Web-API-Anwendung.

In App 3 habe ich den üblichen SignInManager- und UserManager-Code von asp.net (derselbe Code, den Sie standardmäßig erhalten, wenn Sie eine neue MVC 6-Vorlage starten - nur anders ist es in meiner Web-API vorhanden). Und das Login / Logout / Register usw. wird über Web-API-Methoden in meinem AccountController verfügbar gemacht. Dadurch kann ich die Web-API sperren, so dass nur authentifizierte Anfragen verarbeitet werden (mit dem Attribut [Autorisieren]).

Wenn ich die "Login" -Methode in meinem AccountController aufruft, wenn die Anmeldung erfolgreich war, wird eine Set-Cookie-Direktive mit dem folgenden Namen zurückgegeben: ".AspNet.Microsoft.AspNet.Identity.Application" (dies wird für die Authentifizierung verwendet )

Die Login-App leitet den Benutzer dann von App1 zu App2 weiter. Alle nachfolgenden Anfragen an die Web-API (App3) werden dann authentifiziert und dürfen ausgeführt werden. HINWEIS: Durch nachfolgende Anfragen - konkret in App2, winke ich an, um nach Daten vom Webservice zu fragen.

All das funktioniert gut - nun, es funktioniert in IE gut. Was bringt mich zu meiner Frage, warum würde das in Chrome nicht funktionieren? Ich sehe, dass die "Set-Cookie" -Richtlinie von der Antwort der Web-API-Anmeldung in Chrome zurückkommt, aber bei nachfolgenden Anfragen ist dieser Cookie nicht angehängt.

Was mache ich falsch?

HINWEIS: Meine HTTP-Antwort von der Login-Methode sieht folgendermaßen aus:

%Vor%     
Rob McCabe 03.05.2016, 13:55
quelle

0 Antworten