我在asp.net上传文件,如excel,pdf,word,ppt。我怎样才能保证安全。
假设我有一个网站www.example.com,我已经在根目录的“Files”文件夹中上传了文档。我上传的文件名是3828392839.pdf,如果在地址栏中输入“www.example.com/Files/3828392839.pdf”网址,则可以打开并下载文档。我需要如果有一个有效的登录用户,那么它允许打开或下载文件。
答案 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文件夹中,然后需要设置处理程序来提供文件。