Eleganter Umgang mit ReturnUrl bei Verwendung von UrlRewrite in ASP.NET 2.0-WebForms

Ich habe einen Ordner mit mehreren ASPX-Seiten, auf die ich den Zugriff beschränken möchte. Ich habe web.config zu diesem Ordner mit hinzugefügt<deny users="?"/>.

Das Problem ist, dass ReturnUrl automatisch mit dem physischen Pfad zur ASPX-Datei generiert wird, während ich UrlRewrite verwende.

Gibt es eine Möglichkeit, ReturnUrl zu manipulieren, ohne eine manuelle Authentifizierungsprüfung und -umleitung durchzuführen? Gibt es eine Möglichkeit, ReturnUrl über CodeBehind oder über web.config festzulegen?

BEARBEITEN: Die Anwendung verwendet ASP.NET 2.0-Webformulare. Ich kann kein 3.5-Routing verwenden.

BEARBEITEN 2: Anscheinend wird der 401-Statuscode nie erfasst. Es gibt 302 für geschützte Seiten zurück und leitet zur Anmeldeseite mit ReturnUrl weiter. 401 für geschützte Seite wird nicht zurückgegeben. Hmm ... Interessant ... Ref:http://msdn.microsoft.com/en-us/library/aa480476.aspx

Dies erschwert die Arbeit ... Möglicherweise muss ich Reverse-Rewrite-Zuordnungsregeln schreiben, um eine Regex-Übereinstimmung mit ReturnUrl herzustellen und diese zu ersetzen, wenn 401 nicht zurückgegeben wird ... Wenn 401 zurückgegeben wird, kann ich RawUrl entweder auf Response.RedirectLocation setzen oder ReturnUrl ersetzen mit RawUrl.

Hat noch jemand andere Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage