如何防止用户访问文件夹中的文件?

时间:2014-10-05 14:26:59

标签: asp.net

我正在使用Asp.Net Identity。我需要允许管理员和拒绝用户访问我的管理文件夹中的所有页面,所以我在该文件夹中放置了一个web.config文件。

<?xml version="1.0"?>
 <configuration>
   <system.web>
      <authorization>
        <allow roles="Admin"/>
        <deny users="*" />
      </authorization>
   </system.web>
 </configuration>

但是任何人仍然可以访问文件夹中的所有文件。我也尝试将其放入带有位置标记的主配置文件中,但没有结果。你有什么想法开始寻找问题吗?

更新:我在asp.net论坛上发现了一个问题,解释了很多: http://forums.asp.net/t/1955560.aspx?ASP+NET+Identity+Are+web+config+files+no+longer+acting+in+the+capacity+of+a+security+guard+for+our+ASP+NET+applications+files+and+folders+ 还有一件事需要提及。使用asp.net Identity创建新的Web应用程序项目时。 Visual Studio 2013设置以下参数:

<system.web>
  <authentication mode="None"/>
</system.web>

  <system.webServer>
   <modules>
     <remove name="FormsAuthenticationModule" />
   </modules>
  <system.webServer>

2 个答案:

答案 0 :(得分:0)

试试这个

<configuration>

  <system.web>

    <authentication mode="Forms"/>
    <authorization>
      <deny users="?"/>  

    </authorization>
  </system.web>

  <location path="[mymanagementfolder]">
    <system.web>
      <authorization>
        <deny users ="?" />
        <allow users ="*" />
      </authorization>
    </system.web>
  </location>

</configuration>

MSDN SOURCE

如果在IIS中启用目录浏览,则应将其关闭

修改 我认为你应该启用Form/windows authentication。上面的代码在我的电脑上工作正常,因为它重定向到ReturnUrl

My Test output

答案 1 :(得分:0)

将您的代码更改为** **它会阻止任何未经过身份验证的用户:

<?xml version="1.0"?>
 <configuration>
   <system.web>
      <authorization>
        <allow roles="Admin"/>
        <deny users="?" />
      </authorization>
   </system.web>
 </configuration>