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

Asp.net 使用web.config目录安全性和无扩展URL,asp.net,security,authentication,web-config,authorization,Asp.net,Security,Authentication,Web Config,Authorization,我想使用web.config中内置的目录安全功能来限制对父页面的子页面的访问。我的结构如下: 成员 成员/新闻 成员/新闻界 会员/电影 用户应该能够访问成员父页面,但不能访问子页面。我的问题是,因为我使用的是无扩展URL,web.config认为这是一个目录,所以访问被阻止。有没有办法说只限制子页面的访问?这种配置应该可以做到这一点。它允许对整个网站进行匿名访问,除了其他位置——它们需要经过身份验证的用户才能工作 <configuration> <system.w

我想使用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>


Hi。虽然这是可行的,但我希望能够通过在“成员”级别上定义它(比如如果你有一个.aspx扩展名,它是如何工作的),因为子页面是通过CMS管理的,所以我不能保证子页面是什么。我不知道元素是否支持通配符(你试过看看它的行为吗?)。如果需要通配符授权,也许可以编写自己的HttpModule来处理授权。看看这个家伙自己的基本CustomUrlAuthorizationModule的实现:location属性不支持通配符,因为这是我尝试的第一件事。不过,CustomUrlAuthorizationModule可能是一个常客。我会进一步调查的。谢谢你的帮助。