我正在为 Microsoft 考试而学习,并且正在处理一些示例问题。我有这个问题:
“您正在开发一个配置为使用成员资格和角色提供程序的 ASP.NET Web 应用程序。
您需要允许所有用户执行 HTTP GET,但必须只允许名为 Moderator 的用户执行 POST 操作。您应该将哪个配置添加到 web.config 文件中?”
<authorization>
<deny verbs="POST" users="*" />
<allow verbs="POST" users="Moderator" />
<allow verbs="GET" users="*" />
</authorization>
<authorization>
<allow verbs="GET" users="*" />
<allow verbs="POST" users="Moderator" />
<deny verbs="POST" users="*" />
</authorization>
还有另外两个答案,但它们显然是错误的,所以我没有在这里复制它们。
我可以发现两组规则之间的唯一区别是规则的放置顺序。
正确答案是第二组规则。这里的规则首先允许“主持人”的 POST 访问,然后为其他所有人删除它。这对我来说似乎违反直觉 - 给 1 人特权,然后从每个人那里删除该特权,但之后 1 人仍然拥有特权。
如果第一组规则更有意义的话——首先拒绝所有人,然后有选择地授予个人访问权限。显然这是错误的!
谁能解释为什么会这样,以便我能更好地理解这一点?