En ASP.NET, ¿hay alguna manera de obtener la URL real sin procesar?ASP.NET: Obtenga * real * URL sin procesar
Por ejemplo, si un usuario busca "http://example.com/mypage.aspx/%2F", me gustaría poder obtener "http://example.com/mypage.aspx/%2F" en lugar de "http://example.com/mypage.aspx//".
Por supuesto, me gustaría tener una forma clara de hacerlo, pero puedo vivir con un enfoque hacky utilizando la reflexión o el acceso a propiedades oscuras.
Por el momento, trato de usar el uri en el encabezado Authorization (que funciona), pero no puedo confiar en que siempre esté ahí.
EDIT:
Lo que realmente quiero hacer es ser capaz de distinguir entre "http://example.com/mypage.aspx/%2F" y "http://example.com/mypage.aspx/%2F%2F".
Parece que ASP.NET primero convierte "% 2F% 2F" en "//" y luego convierte las barras en una sola barra.
Así que solo volver a codificarlo no va a funcionar.
Esta es la solución correcta. Soluciona problemas cuando hay codificación en la ruta. El HTTP_URL de las variables del servidor mostrará la versión decodificada y esta solución proporciona la versión codificada correcta. –
Esto devuelve el resultado esperado también bajo IIS Express – Vivelin