Pergunta

Asp.net 3.5, iis7

No meu global.asax's Application_beginRequest, preciso extrair do URL da solicitação um URL totalmente separado que foi incorporado nele sem usar a string de consulta.

A solução que eu encontrei foi encobrir o URL de alvo inteiro como se fosse um diretório, como segue:

http://localhost/687474703A...etc...732E6D7033/irrelevantFilename.txt

Isso falha para iis7, cujo A implementação do ASP.NET não tolerará um caminho de URL maior que 260 caracteres.

Meu código controla como o URL da solicitação é gerado e como ele pode incorporar o URL de destino lá, mas não tem controle sobre esse valor de URL de destino (eles são URLs de terceiros).

Quão melhor eu poderia incorporar esse URL de destino no meu URL de solicitação?

Foi útil?

Solução

Você pode encoder-o de URL ou, alternativamente, a base-64 codificá-lo. Ambos são geralmente mais compactos que a codificação hexadecimal.

Nota: Se o URL for maior que cerca de 200 caracteres, esse limite de 260 caracteres será um problema, não importa o quê. E se o URL tiver mais de 260 caracteres ... bem, você pode fazer as contas :-)

Eu não entendo muito bem por que você precisa de um arquivo separado depois. Você pode usar um manipulador 404, ou apenas analisar bem à frente para cada solicitação.

BTW: Se você tiver a opção, provavelmente é melhor incorporar o URL usando um cookie ou como um argumento post. Se isso não for uma opção, você também pode considerar o uso de um serviço de redução de URL como http://bit.ly/ etc. Esses URLs são realmente curtos. Tudo depende de onde os URLs vêm em primeiro lugar. Se você tem controle sobre a geração desses URLs, por que não apenas dar a cada um a cada um e armazená -los em uma mesa e procure -os quando "analisar" o URL?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top