Ich habe eine App für eine einzelne Seite - mehr oder weniger basierend auf der MVC5 SPA-Vorlage -, die Inhaber-Token zur Authentifizierung verwendet.
Die Site verfügt auch über einige herkömmliche MVC-Seiten, die gesichert werden müssen, jedoch die Cookie-Authentifizierung verwenden .
In Startup.Auth kann ich beide Arten der Autorisierung aktivieren:
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOAuthBearerTokens(OAuthOptions);
Dies scheint jedoch einen Nebeneffekt zu haben, da bei jedem Senden einer AJAX-Anforderung vom SPA sowohl das Inhaber-Token im Header als auch das Cookie gesendet werden .
Das Verhalten, das ich wirklich möchte, ist, dass nur das Inhaber-Token für WebAPI-Aufrufe und nur das Cookie für MVC-Aufrufe verwendet wird.
Ich möchte auch, dass die MVC-Aufrufe auf eine Anmeldeseite umleiten, wenn sie nicht autorisiert sind (als CookieAuthenticationOption festgelegt), aber ich möchte natürlich nicht, dass dies beim Ausführen eines API-Aufrufs geschieht.
Gibt es eine Möglichkeit, diese Art der Authentifizierung im gemischten Modus in einer Anwendung durchzuführen? Vielleicht durch einen Pfad- / Routenfilter?