HTTP 处理程序将文件限制为仅只读/仅查看,而不是可下载的 C# ASP.NET 网页
本文关键字:下载 网页 NET ASP 文件 程序 处理 HTTP 只读 | 更新日期: 2023-09-27 18:36:01
我有一个客户端,有一个在线文件库。她希望能够将表单库中的某些文件设为"只读"。
现在,当您查看文件库页面时,所有文件都会显示。
当您单击文件时,它会打开标准浏览器窗口,并询问您是否要打开或下载该文件。基本上,她想将某些文件限制为仅允许您打开而不下载文件。
我很确定这是不可能的,因为这是一种用户偏好浏览器设置类型的东西,但我想在我告诉她之前我会得到一些输入。
现在我正在使用我编写的 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)是一个简单的实用程序函数,我用来根据文件扩展获取内容类型。
无论如何,我可以在此代码中更改任何内容以使文件是只读的或"仅查看"。也许我可以添加某种类型的标题?
回答我自己的问题。这是不可能做到的。