Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.Net中保护上载的文件_C#_Asp.net - Fatal编程技术网

C# 如何在ASP.Net中保护上载的文件

C# 如何在ASP.Net中保护上载的文件,c#,asp.net,C#,Asp.net,我正在asp.net中上载excel、pdf、word、ppt等文档。我怎样才能使它安全 假设我有一个网站www.example.com,我在根目录的“Files”文件夹中上传了文档。我上传的文件名为3828392839.pdf,如果在地址栏中输入“www.example.com/Files/3828392839.pdf”url,则允许打开和下载文档。如果有有效的登录用户,我需要它允许打开或下载文件。保存文件时,您必须为此创建有效的文件夹结构 例如,如果用户ID为20052的用户登录并上载文件。

我正在asp.net中上载excel、pdf、word、ppt等文档。我怎样才能使它安全


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

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

例如,如果用户ID为20052的用户登录并上载文件。那么文件路径应该是:

Files/20052/3828392839.pdf
在这里,我创建了与userid相同的foldername来保存上传的文件

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


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

您应该根据自己的要求在asp.net站点中实施适当的身份验证和授权

要了解更多信息,请访问此链接


    • 非常简单。创建一个普通的ASP.NET页面。执行您的身份验证无论您如何执行,如果他们通过了身份验证,请按此处所述将文件发送到响应


      或者,如果他们没有通过身份验证,则不要发送文件,而是使用一些html响应,如“拒绝访问”

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

      对于简单的windows身份验证:创建作为本地用户/组的读写器角色。 对于基本身份验证:最好是对角色使用数据库身份验证


      如果您使用的是IIS7.0,则需要检查IIS应用池配置是否正确如果您使用的是IIS 7+,请参见以下问题:


      对于IIS 6,您可以将文件放在app_data文件夹中,您需要制作一个处理程序来处理这些文件。

      您可以将文件上载到一个不向internet开放的位置。我已在上回答了这个问题。您只需要
      来阻止任何未登录的人,并为其他文件类型添加处理程序。但是静态文件并不总是由asp.net管道管理。因此,您需要一些配置才能工作