4

とりわけ、ユーザーが以前にアップロードした PDF や Word ドキュメントなどのファイルをダウンロードできるようにする ac# asp.net Web アプリケーションがあります。asp.net アプリは IIS6 サーバー経由で提供され、ファイル リソースは別のサーバー上に存在します。サーバ。

ユーザーがファイルを要求すると (つまり、Web フォームのボタンをクリックすると)、ContentType を適切に変更して、ファイルをブラウザーにストリーミングします。

これは、ユーザーが URL をハッキングする可能性があるため、ファイル リソースを提供するために IIS 仮想フォルダー ルートをたどらないようにするための良い方法のように思われました。つまり、https://mydomain/myresource/clientid/myreport.docxのような URL を使用すると、知識の豊富なユーザーは別の cvlientid とドキュメント名を推測することに成功する可能性があります。

Word 文書をブラウザーにストリーミングする際の問題は、ブラウザーが Word でそれをスローすると、Word がそれを新しい文書として扱うことです。つまり、元の文書のプロパティと余白情報が失われます。

ユーザーはメタデータ情報を Word ドキュメント プロパティに保存するため、このソリューションは受け入れられません。

IIS 仮想フォルダを介してサービスを提供すると、この問題は解決しますが、URL セキュリティの問題が発生します。

だから私の質問は...

IIS 仮想フォルダーで URL の暗号化/復号化 (または難読化) を使用する方法を知っている人はいますか?
または、同様の仕事をしているオープンソース プロジェクトを知っている人はいますか。
または、暗号化された URL を使用して仮想フォルダーの独自の実装を作成する方法について、誰か提案がありますか?

よろしくお願いします。

ps。私たちのウェブアプリはhttps経由で配信されます

4

2 に答える 2

0

ClaimsAuthorizationManager"Windows Identity Foundation"のクラスは、必要な機能を備えていることに気付くかもしれません。「ディレクトリセキュリティ」を使用せずに誰が何をダウンロードできるかを決定するために、好きなロジックを実装できます。

于 2010-04-19T20:42:15.833 に答える
0

申し訳ありませんが、私の質問では、いくつかの間違った仮定をしました。

私がやろうとしているのは、サーバーから (Response.TransmitFile または仮想フォルダーを使用して) クライアント ブラウザーに配信されるときに、Word ドキュメントに保存されているプロパティを永続化することです。

IIS 仮想フォルダーを使用してテスト シナリオをセットアップし、docx ファイル (タイトルとサブジェクトのプロパティに情報が含まれていることがわかっている) を仮想フォルダーの物理パスにドロップしました。

ブラウザーで仮想フォルダー エイリアスを指定すると、ブラウザーはメッセージをポップアップ表示して、ドキュメントを開くか保存します。

保存することを選択した場合、保存された docx のプロパティはそのまま残ります。

最初に開いて Word から保存すると、保存された docx のプロパティが失われます。

だから私は別の質問を投稿する必要があると思います!

于 2010-02-25T16:34:59.007 に答える