Dans ASP.NET, est-il possible d'obtenir l'URL réelle?ASP.NET: Get * real * URL brut
Par exemple, si un utilisateur navigue jusqu'à "http://example.com/mypage.aspx/%2F", je souhaite obtenir "http://example.com/mypage.aspx/%2F" plutôt que "http://example.com/mypage.aspx//". Je voudrais bien sûr une manière propre de le faire, mais je peux vivre avec une approche hacky en utilisant la réflexion ou l'accès aux propriétés obscures.
Pour l'instant, j'essaie d'utiliser l'uri dans l'en-tête Authorization (qui fonctionne), mais je ne peux pas compter sur le fait qu'il soit toujours là.
EDIT:
Ce que je veux vraiment faire est d'être en mesure de faire la distinction entre "http://example.com/mypage.aspx/%2F" et "http://example.com/mypage.aspx/%2F%2F".
Il semble que ASP.NET convertit d'abord "% 2F% 2F" en "//", puis convertit les barres obliques en une seule barre oblique.
Donc juste ré-encoder cela ne va pas fonctionner.
C'est la bonne solution. Il traite les problèmes lorsqu'il y a un encodage dans le chemin. Le HTTP_URL des variables du serveur affichera la version décodée et cette solution fournit la version codée correcte. –
Cela renvoie également le résultat attendu sous IIS Express – Vivelin