Nach der Antwort auf diese Frage , ich habe standardmäßig die Berechtigung für alles hinzugefügt, indem ich den folgenden Code verwende:
%Vor%Wenn jedoch jemand versucht, auf etwas Unbefugtes zuzugreifen, gibt es eine (wie es scheint) Standardumleitungs-URL zurück ( Ссылка ).
Ich möchte, dass es nur eine HTTP 401 anstatt einer Weiterleitung zurückgibt.
Wie kann ich dies in ASP.NET 5 für eine WebAPI tun?
Durch die URL, zu der Sie weitergeleitet werden, nehme ich an, dass Sie die Cookie-Authentifizierung verwenden.
Sie sollten die gewünschten Ergebnisse erzielen, indem Sie die LoginPath
-Eigenschaft von CookieAuthenticationOptions
auf null oder leer setzen, da von einem der Benutzer beschrieben.
Es hat wahrscheinlich damals funktioniert, aber funktioniert nicht mehr (wegen diese Änderung).
Ich habe einen Fehler auf GitHub dafür eingereicht.
Ich werde die Antwort aktualisieren, sobald sie behoben ist.
Ich hatte mit diesem Problem in einer Angular2 + ASP.NET Core-Anwendung. Ich habe es auf folgende Weise behoben:
%Vor%Wenn dies nicht für Sie funktioniert, können Sie stattdessen mit der folgenden Methode versuchen:
%Vor%Update für Asp.Net Core 2.0
Die Cookie-Optionen sind jetzt wie folgt konfiguriert:
%Vor% Beachten Sie, dass Sie das CookieAuthentication
nicht nur dann verwenden sollten, wenn Sie Ihren eigenen Authentifizierungsmechanismus verwenden möchten, zum Beispiel den Provider Identity
umgehen, was für die meisten von uns nicht der Fall ist.
Der Standardprovider Identity
verwendet den CookieAuthenticationOptions
hinter der Szene, Sie können ihn wie folgt konfigurieren:
Getestet in der Version 1.0.0
Tags und Links asp.net-web-api asp.net authorization asp.net-core