我的网络配置的以下安全部分并不像我期望的那样。
我期望的是:默认为每个人都可以访问,他们尝试去的任何地方都会将其重定向到登录,只有这不会发生,我无法访问任何页面。< / p>
如果除了身份验证模式表格以及对BankDetails的限制之外我删除了所有内容,尝试访问其中的任何内容都会被阻止并带您重定向,但是阻止所有内容并允许访问不同部分更安全用户角色我相信。
我哪里错了?提前谢谢。
<!-- security stuff -->
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx"/>
</authentication>
</system.web>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<location path="~/Account/Login.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="~/Default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="BankDetails">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
答案 0 :(得分:0)
When evaluating rules, ASP.NET scans through the list from top to bottom. As soon as it finds an applicable rule, it stops its search.
考虑到这一点,您应该将规则更改为:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx"/>
</authentication>
</system.web>
<location path="~/Default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="~/Account/Login.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<system.web>
<authorization>
<allow users="*"/>
<deny users="?"/>
</authorization>
</system.web>
没有必要为BankDetails明确添加一个,因为它将被最后一条规则<deny users="?"/>
修改强>
我将<allow users="*"/>
添加到最后的全部