Como lidar elegantemente ReturnUrl ao usar UrlRewrite em WebForms do ASP.NET 2.0

Eu tenho uma pasta com várias páginas .aspx que eu quero restringir o acesso. Eu adicionei web.config a essa pasta com<deny users="?"/>.

O problema é que ReturnUrl é gerado automaticamente com caminho físico para o arquivo .aspx enquanto estou usando UrlRewrite.

Existe uma maneira de manipular ReturnUrl sem fazer verificação de autenticação manual e redirecionamento? Existe uma maneira de definir ReturnUrl de code-behind ou de web.config?

EDITAR: O aplicativo está usando o ASP.NET 2.0 WebForms. Eu não posso usar o roteamento 3.5.

EDIT 2: Parece que o código de status 401 nunca é capturado. Ele retorna 302 para a página protegida e redireciona para a página de login com ReturnUrl. Não devolve 401 para a página protegida. Hmm ... Interessante ... Ref:http://msdn.microsoft.com/pt-br/library/aa480476.aspx

Isso dificulta as coisas ... Talvez eu tenha que escrever regras de mapeamento de reescrita reversa para regex match ReturnUrl e substituí-lo se ele não retornar 401 ... Se ele retornar 401, eu posso definir RawUrl como Response.RedirectLocation ou substituir ReturnUrl com RawUrl.

Alguém mais tem alguma outra ideia?

questionAnswers(4)

yourAnswerToTheQuestion