Security 在MVC中保护文件/文件夹

Security 在MVC中保护文件/文件夹,security,asp.net-mvc-4,web-config,Security,Asp.net Mvc 4,Web Config,我想保护一个文件夹,以便只有登录的用户才能访问它。此文件夹包含一组只有登录用户才能下载的图像 我有两种方法可以做到这一点 为用户提供指向图像文件的直接链接 创建下载操作并允许他们通过该操作下载文件 我的问题是,在这两种情况下,我应该如何阻止对文件夹的访问,并只允许登录的用户?如果我想创建一个操作,我可以通过Authorize属性来保护它。但它不能确保直接访问该文件夹 我尝试在要保护的文件夹内的web.config文件中使用下面的config。但它可以被匿名用户访问 <system.web&

我想保护一个文件夹,以便只有登录的用户才能访问它。此文件夹包含一组只有登录用户才能下载的图像

我有两种方法可以做到这一点

  • 为用户提供指向图像文件的直接链接
  • 创建下载操作并允许他们通过该操作下载文件
  • 我的问题是,在这两种情况下,我应该如何阻止对文件夹的访问,并只允许登录的用户?如果我想创建一个操作,我可以通过
    Authorize
    属性来保护它。但它不能确保直接访问该文件夹

    我尝试在要保护的文件夹内的web.config文件中使用下面的config。但它可以被匿名用户访问

    <system.web>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
    
    
    

    将图像存储在
    App\u Data
    根文件夹中-这将停止在下载操作之外直接下载图像文件


    e、 g.访问
    http://www.example.com/App_Data/Secure_Images/image1.jpg
    将不可能,因为ASP.NET将阻止访问。

    默认情况下,常规文件不会通过ASP.NET管道。为了让他们这样做,您需要设置runAllManagedModulesForAllRequests=true

      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
    
    
    
    完成此操作后,您的授权设置将起作用