asp.net - 使用 web.config 目录安全性和无扩展名 URL

标签 asp.net security authentication web-config authorization

我想使用 web.config 中内置的目录安全功能来限制对父页面的子页面的访问。我的结构如下:

  • 成员
  • 成员/新闻
  • 成员/媒体
  • 成员/电影

用户应该能够访问成员父页面,但不能访问子页面。我的问题是,因为我使用无扩展名 URL,所以 web.config 认为这是一个目录,因此访问被阻止。有没有办法说只限制子页面的访问?

最佳答案

这个配置应该可以解决问题。它允许对整个网站进行匿名访问,但其他位置除外 - 它们需要经过身份验证的用户才能工作。

<configuration>
    <system.web>
        <authentication mode="Forms">
            <forms loginUrl="Login" defaultUrl="Members" />
        </authentication>
        <authorization>
            <allow users="?" />
        </authorization>
    </system.web>

    <location path="Members/News">
        <system.web>
            <authorization>
                <deny users="?" />
                <allow users="*" />
            </authorization>
        </system.web>
    </location>

    <location path="Members/Press">
        <system.web>
            <authorization>
                <deny users="?" />
                <allow users="*" />
            </authorization>
        </system.web>
    </location>

    <location path="Members/Movies">
        <system.web>
            <authorization>
                <deny users="?" />
                <allow users="*" />
            </authorization>
        </system.web>
    </location>

</configuration>

关于asp.net - 使用 web.config 目录安全性和无扩展名 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299399/

相关文章:

c# - 根据 3 层应用程序中的下拉列表填充文本框

ajax - AJAX 检查用户名功能的安全性

android - 我怎样才能防止(覆盖或格式化或克隆任何其他东西)我的 NFC 标签?

authentication - 如何用ACR122U验证NTAG213

php - 存在多个表时最有效的登录方式

javascript - 如何在不触发父 div 事件的情况下触发子 div 事件?

asp.net - 方法 'Label' 没有重载需要 3 个参数

c# - 上传带有元数据的文件

android - 保护 Web 服务,使其只能由特定的 Android 应用程序调用

ios - 如何判断用户是否已在 iOS 上登录 Facebook?