我有以下 ASP.NET 表单身份验证配置:
<system.web>
<authentication mode="Forms">
<forms name="MembershipCookie"
loginUrl="Login.aspx"
protection="All"
timeout="525600"
slidingExpiration="true"
enableCrossAppRedirects="true"
path="/">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="Home.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location
如果匿名用户访问该网站并请求home.aspx
如果他们被拒绝进入并被踢到Login.aspx
页面因为第一条规则<deny users="?" />
将匹配并且进一步处理将停止?
该站点在 IIS7.5、ASP.NET 4.0 上运行,应用程序池配置为集成管道模式。
Update:
提出这个问题的原因是为了检查我对 ASP.NET 4.0 表单身份验证行为的理解(实际上是正确的)。有一个相关的后续问题描述了修补程序中的错误(也包含在 Windows 2008R2 SP1 中) - KB980368:
ASP.NET 2.0 和 4.0 在表单身份验证中似乎以不同方式处理根 url
如果用户正在访问 Home.aspx ,它将使用 Home.aspx 指定的配置节<location />
因此用户不会被踢出 Login.aspx 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)