[英]ASP.NET Forms Authentication
我具有以下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="?" />
<deny users="?" />
将匹配,并且进一步处理将停止吗?
该站点在IIS7.5,ASP.NET 4.0上运行,并且将应用程序池配置为集成管道模式。
更新:
出现此问题的原因是理智地检查我对ASP.NET 4.0的表单身份验证行为的理解(实际上是正确的)。 有一个相关的后续问题,该问题描述了修补程序(也已引入Windows 2008R2 SP1)中看起来像是个错误的错误-KB980368:
如果用户正在访问Home.aspx,它将使用<location />
指定的Home.aspx配置部分,因此不会将该用户踢出Login.aspx。
如果用户访问Home.aspx,则将应用第二条规则,即
<location path="Home.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
这里要注意的一点是: *
告诉任何授权用户 (分配了任何角色或没有分配角色)都可以访问该页面,但是?
告诉未授权用户无法访问该页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.