【问题标题】:MVC 5 limit access to folderMVC 5 限制对文件夹的访问
【发布时间】:2016-05-05 13:39:32
【问题描述】:

我在网站根目录的 web.config 文件中有此设置

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/reserved/login" timeout="2880"></forms>
  </authentication>
</system.web>

我想保护一个 javascript 文件夹,我在这个文件夹中创建了一个 web.config 文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
</configuration>

为什么会被忽略? 谢谢

【问题讨论】:

  • &lt;deny users="*" /&gt; ?
  • 不起作用
  • 现在使用此代码可以正常工作
  • 哈哈有点神奇 =)

标签: asp.net-mvc security configuration web-config


【解决方案1】:

在网站根目录的web.config中添加:

<location path="Javascript">
<system.web>
  <authorization>
    <deny users="*" />
  </authorization>
</system.web>

您也可以修改为

<system.web>
 <authentication mode="Forms">
  <forms loginUrl="~/reserved/login" timeout="2880"></forms>
 </authentication>
 <authorization>
  <deny users="?" />
 </authorization>
</system.web>

并使用allow users="*" 将文件夹列入白名单。

我不相信在任意位置读取 web.config。

【讨论】:

  • 哪种方式,您可以访问任何内容,还是访问所有内容?如果是第一个,则需要添加白名单规则,如果是后者,则需要正确添加拒绝用户部分。
  • 如果我拒绝访问所有站点,它会重定向到我的登录页面,但我只需要保护一个目录。您的第一个代码不起作用
  • 保护它免受谁的侵害?全部还是 Unauth?您是否将path="Javascript" 更新为正确的文件夹名称?它在您的 root web.config 中吗?
猜你喜欢
  • 1970-01-01
  • 2019-12-07
  • 2017-09-17
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多