Wird die ReturnUrl im Formular-Header als Eigenschaft angegeben, dann wird sie in der Adresse als Parameter übergeben. Ich habe sie jedoch dort nicht gesetzt. Statt dessen wird beim Klick auf Login eine Funktion im Skript ausgeführt. Dort wird die aktuelle Seite übergeben. Da dieser Aufruf als Post ausgeführt wird, befindet sich nun die ReturnUrl im Inhalt der Serveranfrage und nicht in der Adresszeile.
Da die absolute Uri übergeben wird, kann auch der Host geprüft werden. Dieser sollte den meiner Webseite entsprechen. Ist es ein anderer, dann kann dies ein Fehler sein, oder auf einen Angriff hindeuten.
Die übergebene ReturnUrl lege ich beim Aufruf der Anmeldung in den Sessionsdaten ab. Das finde ich eine gute Möglichkeit. Dort wird sie dann abgerufen, wenn die Anmeldung erfolgreich war.