最終的に、.NET WebBrowser コントロールでダウンロードをブロックし、HTML、画像、スクリプトなどの表示に効果的に制限したいのですが、ユーザーに「名前を付けて保存」ダイアログを表示することは決してありません。
その質問への回答で提案された解決策は、応答をチェックし、ダウンロード プロンプトにつながるものを除外するカスタム プロキシ サーバーを接続することでした。このようなプロキシを .NET アプリケーションに実装するにはどうすればよいですか? サードパーティのソフトウェアやライブラリをインストールしたくありません。
HttpListener クラスを見つけましたが、2 つの問題があります。
- リスナーには、それをトリガーする定義済みの一連のプレフィックスが必要です。ただし、アプリケーションにホスト名やポート番号をハードコーディングせず、一般的なものにしておくことを好みます。
- 実際のリクエストを自分で実行するコードを実装する必要があります-これを実行して、単に行をタップして、応答の内容を調べ、必要に応じて変更できるものはありませんか( J2EE はサーバー側で行います)?
アップデート
わかりました、これを明確にする必要があると思います: 私の .NET (リッチ クライアント) アプリケーションは、Web ベースのアプリケーションも含む複数のプロジェクトで使用されています。.NET アプリケーションには、WebBrowser コントロールを備えた再利用可能な汎用フォームが含まれています。他の開発者は、そのフォームを使用して、Web アプリケーションへのアクセスを .NET アプリケーションに統合します。
ダウンロードをブロックしたいので、WebBrowser フォームにすべてのトラフィックをインターセプトさせ、[名前を付けて保存] ダイアログが表示されないようにしたいと考えています。したがって...
- ホスト名がどうなるかわからない
- WebBrowser は実際の URL を指し、ユーザーは通常のリンクをクリックし、JavaScript をトリガーします... すべて Web アプリケーションによって提供されます。
- WebBrowser が localhost を指している場合 (提案どおり)、応答を解析し、すべてのリンクを書き直して、元の URL を保持したまま、再び localhost を指すようにする必要があります。そんな面倒なことはしたくない。