Die Umleitung zur Url beim Schutz vor Open Redirection Attacks mit IsLocalUrl funktioniert nicht, wenn der übergebene String eine vollständige Uri ist. Daher habe ich den String mit new Uri(strReturnUrl).LocalPath konvertiert.
Auf meiner Seite weiß ich, dass es sich bei der ReturnUrl nicht um die LokalUrl handelt. Wenn es sich um beide Arten handeln kann, dann muss vorher herausgefunden werden, welche Form die ReturnUrl hat. Ausnahmen beim konvertieren müssen abgefangen werden.
Ich habe mich am nachfolgenden Artikel orientiert.
Docs Microsoft: preventing-open-redirects
Der Schutz kann erweitert werden, indem die ReturnUrl auf verdächtigen Inhalt geprüft wird. Es können dann bei Verdacht Maßnahmen eingeleitet werden. Wie das Prüfen auf andere Unregelmäßigkeiten im Datenverkehr. Denn es besteht die Möglichkeit, dass auch andere Angriffsformen statt fanden, um an Daten zu gelangen.