我正在创建一个招聘网站,并有一个名为/ CV /的文件夹,我存储会员上传的简历文件。
让我们说用户保存他们的简历及其名为123.pdf,并存储在cv / 123.pdf中。 如果他们输入“http://mydomain.com/cv/123.pdf”,如何阻止pdf文件在浏览器窗口中加载或下载到用户计算机?
我在IIS6服务器上使用表单身份验证,Asp.Net成员身份和角色提供程序,Asp.net 4。
答案 0 :(得分:4)
最好的方法是将文件放在其他地方,并编写一些代码来访问它们 - 然后该代码可以验证调用者是否具有必要的权限。
例如,您可以将文件存储在/uploads/xyz123/
目录中。然后,为了下载文件,例如myresume.pdf
,用户必须浏览http://yourserver/download.aspx?file=myresume.pdf。
该页面然后进行必要的验证,加载文件并将其作为二进制文件输出到浏览器,如下所示:
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=" + filename);
Response.AddHeader("content-length", binaryStream.Length.ToString);
Response.BinaryWrite(binaryStream.ToArray());
Response.Flush();
Response.End();
没有用户会知道文件的实际存储位置。
答案 1 :(得分:4)
答案 2 :(得分:3)
您可以将文件简单地保存在不属于Web应用程序的目录中。
如果您想存储不应通过http访问的文件,请执行此操作。