Wenn die Anwendung Standalone (nur Turmfalke Server läuft auf einem bestimmten Port in meinem Fall: 3001) Ich kann anmelden (Erstellen eines Auth-Cookie) und meine Sitzung ohne Problem zu verwenden mache nachfolgende Aufrufe an meine API-Controller. Sobald ich jedoch die Anwendung über IIS auf den Host veröffentliche, kann ich mich ohne Probleme anmelden, aber alle nachfolgenden Anfragen an meine API-Controller scheitern an Autorisierung und Umleitung zur Anmeldung..Net Core Cookie Authentifizierung funktioniert nicht, wenn in IIS
Zu meinem Problem zeigt ich auf eine Arbeitsprobe meine Anwendung abgestreift habe, die hier gefunden werden kann: Angular2AspNetCoreStarter
zu reproduzieren:
- Klon den Repo
cd Angular2AspNetCoreStarter
in Projektverzeichnis navigieren- Abhängigkeiten installieren
dotnet restore
&npm install
- build
npm run build
- veröffentlichen
dotnet publish
- Host über IIS Publishing to IIS
- Navigieren Sie zu gehosteten Seite (in meinem Fall war es @
http://localhost/ng2starter
) - Anmeldung mit einem beliebigen Benutzernamen/Passwort
- Offene Seiten Navigation
- Click Senden Sie anonymen Ping (beachten Sie, dass es funktioniert! Ich benutzte Fiddler Verkehr) zu inspizieren
- Klicken, Ping (man beachte die 401 und umleiten um sich einzuloggen)
Ich habe die Protokolle geprüft und die Fehler, die ich in den Kestrel-Logs finden ist: CookieAuth was not authenticated. Failure message: Unprotect ticket failed
FYI 'CookieAuth' ist der Name des Schemas, den ich in der Datei appsettings.json definiert habe.
@WarrenP haben Sie 'npm install' ausgeführt und erstellen mit' npm run build' – wickdninja
Ihre neuen Anweisungen sind viel besser! Ich habe es zur Arbeit gebracht. Ich werde es auf IIS testen, wenn ich zu Hause bin und sehen, ob ich es herausfinden kann. Natürlich macht das Ausführen in IIS das Debuggen schwieriger. –
Einverstanden ... das ist die Hälfte mein Problem lol Wenn Sie nur in IIS ausführen und den Debugger wie in ASP.NET (nicht Kern) anfügen könnten – wickdninja