Jak elegancko obsługiwać ReturnUrl podczas korzystania z UrlRewrite w WebForms ASP.NET 2.0
Mam folder z wieloma stronami .aspx, do których chcę ograniczyć dostęp. Dodałem web.config do tego folderu za pomocą<deny users="?"/>
.
Problem polega na tym, że ReturnUrl jest automatycznie generowany ze ścieżką fizyczną do pliku .aspx podczas korzystania z UrlRewrite.
Czy istnieje sposób na manipulowanie ReturnUrl bez ręcznego sprawdzania autentyczności i przekierowywania? Czy istnieje sposób na ustawienie ReturnUrl z kodu lub z web.config?
EDYTOWAĆ: Aplikacja korzysta z formularzy WWW ASP.NET 2.0. Nie mogę użyć routingu 3.5.
EDYCJA 2: Wygląda na to, że kod statusu 401 nigdy nie jest przechwytywany. Zwraca 302 dla chronionej strony i przekierowuje do strony logowania za pomocą ReturnUrl. Nie zwraca 401 dla strony chronionej. Hmm ... Ciekawe ... Ref:http://msdn.microsoft.com/en-us/library/aa480476.aspx
Sprawia to, że sprawy stają się trudniejsze ... Być może będę musiał napisać reguły odwrotnego przepisywania do regex match ReturnUrl i zastąpić je, jeśli nie zwróci 401 ... Jeśli zwróci 401, mogę ustawić RawUrl na Response.RedirectLocation lub replace ReturnUrl z RawUrl.
Czy ktoś inny ma inne pomysły?