如何在ASP.Net中保护上传的文件

时间:2014-09-16 10:35:18

标签: c# asp.net

我在asp.net上传文件,如excel,pdf,word,ppt。我怎样才能保证安全。

假设我有一个网站www.example.com,我已经在根目录的“Files”文件夹中上传了文档。我上传的文件名是3828392839.pdf,如果在地址栏中输入“www.example.com/Files/3828392839.pdf”网址,则可以打开并下载文档。我需要如果有一个有效的登录用户,那么它允许打开或下载文件。

5 个答案:

答案 0 :(得分:1)

在保存文件时,您必须为此目的创建有效的文件夹结构。

EG。如果具有userID 20052的用户登录并上载文件。然后文件路径应为:

Files/20052/3828392839.pdf

这里我创建了与userid相同的foldername来保存上传的文件。

在打开文件时,您必须比较foldername,即20052和登录userid

如果它们相同,则允许download文件。

答案 1 :(得分:0)

您应该在asp.net网站上根据您的要求实施适当的身份验证和授权。

要了解更多信息,请浏览此链接

答案 2 :(得分:0)

非常简单。创建一个普通的ASP.NET页面。如果您想通过认证,那么您的认证是否正确,请将文件发送到此处所述的响应...

How to send file in HttpResponse?

或者,如果他们没有通过身份验证,请不要发送文件,而是使用某些html回复,例如"访问被拒绝"

答案 3 :(得分:0)

您可以通过创建文档文件夹的权限来确保这一点。这意味着您还需要上传文件和下载的权限。

对于简单窗口身份验证:将读取器和写入器角色创建为本地用户/组。 对于基本身份验证:最好是对角色使用数据库身份验证。

如果您使用的是IIS7.0,则需要检查IIS apppool是否已正确配置

答案 4 :(得分:0)

如果您使用的是IIS 7+,请参阅此问题: How do I protect static files with ASP.NET form authentication on IIS 7.5?

对于IIS 6,您可以将文件放在app_data文件夹中,然后需要设置处理程序来提供文件。