1

オンライン ファイル ライブラリを使用しているクライアントがいます。彼女は、フォーム ライブラリの一部のファイルを "読み取り専用" にできるようにしたいと考えています。

現在、ファイル ライブラリ ページを表示すると、すべてのファイルが表示されます。

ファイルをクリックすると、標準のブラウザ ウィンドウが開き、ファイルを開くかダウンロードするかを尋ねられます。基本的に、彼女はいくつかのファイルを制限して、ファイルを開くことだけを許可し、ファイルをダウンロードしないようにしたいと考えています。

これは一種のユーザー設定のブラウザー設定タイプのものであるため、これは不可能だと確信していますが、彼女に知らせる前に何らかの入力を得ると思いました.

現在、私が作成したファイル ハンドラーと呼ばれる asp.net HTTP ハンドラーを使用しています。

    public void ProcessRequest(HttpContext context)
    {
        if (this.FileName != null)
        {
            string path = String.Concat(ConfigurationManager.UploadsDirectory, this.FileName);
            string contentType = Utility.IO.File.GetContentType(this.FileName);

            if (File.Exists(path) == true)
            {
                context.Response.Buffer = true;
                context.Response.Clear();
                context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                context.Response.ContentType = contentType;
                context.Response.AddHeader("content-disposition", String.Format("inline; filename={0}", (Url.Encode(this.DisplayFileName))));
                context.Response.TransmitFile(path);
                context.Response.Flush(); 
                context.Response.End();
            }
            else
            {
                throw new HttpException(404, "File Not Found");
            }
        }
    }

この関数 (Utility.IO.File.GetContentType) は、ファイルの拡張子に基づいてコンテンツ タイプを取得するために使用する単純なユーティリティ関数です。

とにかく、ファイルが読み取り専用または「表示専用」になるように、このコードを変更できるものはありますか。たぶん、私が追加できるヘッダーのタイプでしょうか?

4

1 に答える 1