質問

ASP.NET 3.5、IIS7

私のGlobal.AsaxのApplication_BeginRequestでは、リクエストのURLから埋め込まれている完全に別のURLを抽出する必要があります。 クエリ文字列を使用せずに.

私が思いついた解決策は、次のように、ターゲットURL全体をディレクトリであるかのようにEncodeすることでした。

http://localhost/687474703A...etc...732E6D7033/irrelevantFilename.txt

これはIIS7で失敗します ASP.NETの実装は、260文字を超えるURLパスを許容しません.

私のコードは、リクエストURLがどのように生成されるか、およびターゲットURLをそこに埋め込む方法を制御しますが、そのターゲットURL値を制御できません(サードパーティのURLです)。

リクエストURLにこのターゲットURLをどのくらい埋め込むことができますか?

役に立ちましたか?

解決

url-encodeまたはbase-64をエンコードすることもできます。どちらも通常、HEXエンコーディングよりもコンパクトです。

注:URLが約200文字より長い場合、その260文字の制限は何であれ問題になります。そして、URLが260文字より長い場合...まあ、あなたは数学を行うことができます:-)

ただし、なぜ別のファイルを必要としているのかよくわかりません。 404ハンドラーを使用することも、各リクエストに対して直前に解析することもできます。

ところで:オプションがある場合は、おそらくCookieを使用してURLを埋め込むか、投稿後の引数として埋め込む方が良いでしょう。それがオプションでない場合は、次のようなURL-Shorteningサービスの使用を検討することもできます http://bit.ly/ など。これらのURLは本当に短いです。それはすべて、そもそもURLがどこから来るのかに依存します。これらのURLの生成を制御できる場合は、それぞれに短いIDを与えて、テーブルに保存して、URLを「解析」するときにそれらを調べてみませんか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top