В ASP.NET есть ли способ получить real необработанный URL?ASP.NET: Get * real * raw URL
Например, если пользователь просматривает «http://example.com/mypage.aspx/%2F», я хотел бы иметь возможность получить «http://example.com/mypage.aspx/%2F», а не «http://example.com/mypage.aspx//».
Я бы, конечно, был чистый способ сделать это, но я могу жить с хакерским подходом, используя отражение или доступ к неясным свойствам.
На данный момент я пытаюсь использовать uri в заголовке авторизации (который работает), но я не могу полагаться на то, что всегда было там.
EDIT:
То, что я действительно хочу сделать это, чтобы иметь возможность различать "http://example.com/mypage.aspx/%2F" и "http://example.com/mypage.aspx/%2F%2F".
Похоже, что ASP.NET сначала преобразует «% 2F% 2F» в «//», а затем преобразует косые черты в одну косую черту.
Так что просто перекодировка не будет работать.
Это правильное решение. Он решает проблемы при кодировании в пути. HTTP_URL из переменных сервера отображает декодированную версию, и это решение обеспечивает правильную кодированную версию. –
Это возвращает ожидаемый результат в IIS Express – Vivelin