2

.pdfファイルをユーザーがダウンロードできるように制限するが、aspxまたはaspで取得できるようにするソリューションを探しています。次の行を、Webサイトのルートディレクトリのsystem.webタグ内のweb.configファイルに追加しようとしました。

<httpHandlers>
    <add verb="*" path="*.pdf" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>

しかし、Webサイトにアクセスすると、内部サーバーエラーが発生します。誰かがこれを行う方法を知っていますか、私はWindows7のIIS7でテストしています。


正常に構成された更新:

<add name="NoPdfAllowed" verb="*" path="download/*.pdf" 
   type="System.Web.HttpForbiddenHandler" />
</handlers>

しかし、web.configファイルに上記の行を追加した後、PDFを開くことができないJavaアプレットプラグイン(html / asp / aspxページ)があります。JavaアプレットがPDFをロードできるようにすることは可能ですか?

4

2 に答える 2

0

私があなたの問題を理解している場合は、「直接」URL を介した pdf ファイルのダウンロードを禁止し、クライアント (Java アプレット) を介したダウンロードを許可する必要があります。これは丸い円を作る方法のようなものです:)

私は趣味の放棄サイトでこのシステムを使用して、zip ファイルをダウンロードしています。

  • Web サイトのディレクトリから PDF を削除するか、既に行ったように拡張子を許可しない
  • Java アプレットで .aspx ページを提供する場合、一意の識別子と pdf ファイル名を含む一意のトークン (新しい GUID としましょう) を生成し、それを http キャッシュ (サーバーとして単一のボックスを使用している場合) または db/scaleout ( Web ファーム)、このトークン識別子をアプレットに渡します。このトークンの有効期間は限られているはずです。
  • pdf ファイルを提供する HttpHandler を作成します。このハンドラーは (pdf を提供する前に) トークン ID でチェックし、トークンが存在してまだ有効であるかどうかを確認し、pdf ファイルを提供した後にこのトークンを無効にします。
  • リファラーがドメインと一致するかどうかを確認することもできますが、お勧めしません。一部のブラウザーでは、それが正しく設定されていません。

このようにして、ユーザーは引き続き pdf ファイルをダウンロードできますが、ダウンロード リンクは 1 回しか機能しないため、コンテンツをリンクすることはできません (少なくともそれほど簡単ではありません)。

于 2013-06-26T09:45:02.993 に答える