Ich habe eine neue MVC 5-Site mit der neuen Asp.Net Identity mit Owin gestartet. In meinem "account" -Controller, der das Attribut [Authorize] hat, habe ich ziemlich Standardaktionen;
%Vor%Meine Frage bezieht sich auf das Verhalten von returnUrl, der obige Code funktioniert in dem Sinne, dass wenn ein Benutzer nicht angemeldet ist und eine Aktion in einem Controller aufruft, der das Attribut [Authorize] hat, wird er zum Login geschickt Aktionen oben und kehrte dann zu dem Controller / Aktion, die angefordert wurde. Was ist toll, ABER wie ?? Und ist es sicher?
In diesem Artikel über " Offenen Redirect-Angriffen verhindern " (für früher Versionen von Asp.Net MVC) empfiehlt es sich, vor der Weiterleitung zu überprüfen, ob es sich um eine lokale URL handelt. Soll ich das noch tun oder wird es jetzt vom Framework behandelt?
Prost, Ola
Um Ihre erste Frage zu beantworten, wie die Weiterleitungs-Url eingerichtet wird, wird sie in Startup.Auth.cs
konfiguriert, die von Startup.cs
aufgerufen wird und mit einem Attribut gekennzeichnet ist, das wahrscheinlich vom OWIN-Framework beim App-Start und beiden Dateien gesucht wird partial
erweitert eine Startup
-Klasse.
In Startup.Auth.cs
gibt es eine Klasse zum Konfigurieren von Authentifizierungsoptionen und normalerweise den folgenden Code
Ich habe die Option CookieSecure
hinzugefügt, um sicherzustellen, dass Cookies signiert wurden, und dass dies als eine gute Sicherheitsvorkehrung empfohlen wird, außer dass es sich um den Kesselblechcode handelt.
Weitere Dokumentation zu CookieAuthenticationOptions wenn du es willst.
Wie Sandeep Phadke sagte, ist der Parameter returnUrl wegen der Konfiguration in startup.Auth.cs.
gefülltDie CookieAuthenticationOptions hat eine Eigenschaft ReturnUrlParameter, die standardmäßig auf "returnUrl" gesetzt ist. Das ist der Grund, warum es wie Magie aussieht. Sie können es zu dem ändern, was Sie wollen:
%Vor%Dann können Sie die AccountController Login-Aktion zu:
ändern %Vor%Tags und Links asp.net-mvc asp.net redirect asp.net-mvc-5 login