Base64 文字列を QueryString 経由で C#.Net Web アプリケーションに渡そうとしています。文字列が到着すると、「+」(プラス) 記号がスペースに置き換えられます。自動 URLDecode プロセスがこれを行っているようです。QueryString を介して渡されるものを制御することはできません。このサーバー側を処理する方法はありますか?
例:
http://localhost:3399/Base64.aspx?VLTrap=VkxUcmFwIHNldCB0byAiRkRTQT8+PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
プロデュース:
VkxUcmFwIHNldCB0byAiRkRTQT8 PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
人々はクエリ文字列の URLEncoding を提案しています:
System.Web.HttpUtility.UrlEncode(yourString)
呼び出しルーチンを制御できないため、これを行うことはできません (他の言語では正常に動作しています)。
スペースをプラス記号に置き換えるという提案もありました。
Request.QueryString["VLTrap"].Replace(" ", "+");
私はこれについて考えていましたが、私の懸念は、プラス記号に加えて、他のどの文字が不正な形式である可能性があるのか わからないということです。
私の主な目標は、デコーダーを通過する前に QueryString をインターセプトすることです。
この目的のために Request.QueryString.toString() を調べてみましたが、これには同じ不正な情報が含まれていました。URLDecoded される前に生の QueryString を見る方法はありますか?
さらにテストした結果、.Net は QuerString からのすべての着信が URL エンコードされていることを期待しているように見えますが、ブラウザーは GET 要求を自動的に URL エンコードしません。