asp.net中的文件夹权限

asp.net中的文件夹权限,asp.net,Asp.net,我有一个asp.net应用程序。项目中有一个文件夹,用户可以将图像和文件上载到该文件夹 我想限制用户,每个用户只看到他的文件。我该怎么做? 由于文件上载到文件夹中,用户可以通过浏览文件URL来访问它们 一种方法是,您可以将文件存储在文件夹的用户名中,而允许您指定路径的参数总是假定您在用户名之后谈论……就像共享web主机必须如何工作一样 无论如何,如果您的代码中存在某些缺陷或其他问题,您应该为每个用户保护每个文件夹 e、 g.每个用户文件的物理文件结构 C:\TheProject\Uploads\

我有一个asp.net应用程序。项目中有一个文件夹,用户可以将图像和文件上载到该文件夹

我想限制用户,每个用户只看到他的文件。我该怎么做?
由于文件上载到文件夹中,用户可以通过浏览文件URL来访问它们

一种方法是,您可以将文件存储在文件夹的用户名中,而允许您指定路径的参数总是假定您在用户名之后谈论……就像共享web主机必须如何工作一样

无论如何,如果您的代码中存在某些缺陷或其他问题,您应该为每个用户保护每个文件夹

e、 g.每个用户文件的物理文件结构

C:\TheProject\Uploads\UserA\Images
C:\TheProject\Uploads\UserB\Images
C:\TheProject\Uploads\UserC\Images
显示当前登录用户文件的web应用的url。如果UserA已登录,则显示相应文件夹中的文件等

快乐之路:

http://example.com/browsefiles/?path=images
http://example.com/browsefiles/?path=docs
http://example.com/browsefiles/?path=../UserA/images
http://example.com/browsefiles/?path=../../web.config
不愉快的路径:

http://example.com/browsefiles/?path=images
http://example.com/browsefiles/?path=docs
http://example.com/browsefiles/?path=../UserA/images
http://example.com/browsefiles/?path=../../web.config
因此,显然要对您接受的输入进行严格的检查……甚至可能是一个白名单……如果用户的查询与白名单不匹配,请阻止它。在这种情况下,您可能希望在阻止合法请求方面出错,而不是允许恶意请求

编辑
如果用户无需通过您的web应用程序即可访问这些文件(我们可以假设这里是Intranet应用程序吗?),或者通过文件共享/网络共享/ftp,那么您可以尝试几种选择

  • 应用程序中的每个用户都是服务器上的用户(本地用户),因此他们在服务器上拥有用户名和密码(应用程序需要对其进行身份验证),但允许您将服务器上每个文件夹/文件的权限设置为本地用户,或
  • 如果您有Active Directory设置,并且可以使用Windows身份验证,那么这可能会更容易,这样您就可以模拟web应用并使用用户的Active Directory帐户保护文件/文件夹

如果您需要有关Active Directory或Windows服务器上帐户的帮助,您可能需要咨询。您必须在image文件夹中创建web.config并使用FormsAuthentication 在web.config中:

  <authorization>
  <deny users="?"/>  // anonymous user
  </authorization>

//匿名用户

使用asp.net成员身份控制访问怎么样。我认为这是“正确”的方法。我想直接访问文件,而不是通过asp.net页面和查询字符串。感谢这并没有限制用户只能看到自己的文件。