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?

questionAnswers(4)

yourAnswerToTheQuestion