質問

次のasp.netコードは、データベースからファイルを提供するときに非常に役立つことがわかりました。

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);

これにより、ユーザーはファイルをコンピューターに保存し、ブラウザーがファイルを使用する代わりに、その使用方法を決定できます。

content-disposition応答ヘッダーで他にできることは何ですか?

役に立ちましたか?

解決

RFC 6266 は、以下で参照されるRFCに優先することに注意してください。 セクション7 では、関連するセキュリティ上の懸念の一部を説明しています。

content-dispositionヘッダーの権限は、 RFC 1806 および RFC2183。人々は content-dispositionハッキング。 content-dispositionヘッダーはHTTP 1.1標準の一部ではないことに注意することが重要です。

HTTP 1.1標準( RFC 2616 )では、コンテンツの処分:

  

15.5コンテンツ処理の問題

     

RFC 1806 [35]、そこからしばしば   Content-Disposition
を実装しました   (セクション19.5.1を参照)HTTPのヘッダーは   派生、非常に多くの
  深刻なセキュリティの考慮事項。   Content-Dispositionは
の一部ではありません   HTTP標準ですが、   広く実装されており、
  その使用とリスクを文書化する   実装者。 RFC 2183 [49]
を参照   (RFC 1806を更新)詳細については。

他のヒント

まあ、Content-DispositionヘッダーはWebではなく電子メール用に作成されたようです。 (関連するRFCへのリンク。)

Webブラウザが応答する可能性があると推測しています

Response.AppendHeader("content-disposition", "inline; filename=" + fileName);

保存するが、よくわからない。

RFC 6266(ハイパーテキスト転送プロトコル(HTTP)でのContent-Dispositionヘッダーフィールドの使用)を参照 http://tools.ietf.org/html/rfc6266

asp.netユーザーの場合、.NETフレームワークはコンテンツ処理ヘッダーを作成するクラスを提供します。 System.Net.Mime.ContentDisposition

基本的な使用法:

var cd = new System.Net.Mime.ContentDisposition();
cd.FileName = "myFile.txt";
cd.ModificationDate = DateTime.UtcNow;
cd.Size = 100;
Response.AppendHeader("content-disposition", cd.ToString());

このヘッダーは RFC 2183 で定義されているため、最適な場所です読み始めます。

許可される値は、Internet Assigned Numbers Authority(IANA)に登録されている値です。それらの値のレジストリが決定的なソースと見なされる必要があります。

MicrosoftサポートセクションのこのKB記事は、ここでの議論に関連している既知のMIMEタイプのファイルダウンロードダイアログボックスを表示する方法

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