ASP.NETでは、を実際に生URLにする方法はありますか?ASP.NET:*実際の生URLを取得する
たとえば、ユーザーが「http://example.com/mypage.aspx/%2F」を参照すると、「http://example.com/mypage.aspx//」ではなく「http://example.com/mypage.aspx/%2F」を取得したいと考えています。
私はもちろん、それを行うためのきれいな方法が好きですが、私はリフレクションやあいまいなプロパティへのアクセスを使ってハッキーなアプローチで暮らすことができます。
現時点では、私はAuthorization-header(動作しています)にuriを使用しようとしていますが、常にそこにいることに頼ることはできません。
EDIT:
私が本当にやりたいことは、 "http://example.com/mypage.aspx/%2F" と "http://example.com/mypage.aspx/%2F%2F" を区別できるようにすることです。
ASP.NETは、最初に "%2F%2F"を "//"に変換してからスラッシュを1つのスラッシュに変換するようです。
だから、再エンコードするだけでは機能しません。
これは適切な解決策です。パスにエンコーディングがあるときの問題を解決します。サーバー変数のHTTP_URLにはデコードされたバージョンが表示され、このソリューションは正しいエンコードされたバージョンを提供します。 –
これはIIS Expressでも期待される結果を返します – Vivelin