我正在學習微軟考試,並正在處理一些示例問題。我有這樣的疑問:Asp.Net授權規則優先
「你正在開發其配置爲使用會員和角色提供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訪問,然後將其移除給其他人。這對我來說似乎是違反直覺的 - 給一個人一個特權,然後從每個人中刪除這個特權,然而這個特權在之後仍然有特權。
如果第一套規則更有意義 - 首先否認所有人,然後選擇性地授予個人訪問權限。顯然這是錯誤的!
任何人都可以解釋爲什麼這是這種情況,所以我可以更好地理解這一點?
我明白了謝謝。這僅僅是先到先得的情況。 Asp.Net首先發現「允許版主」,因爲它匹配,所以可以忽略其餘部分。 –
繁榮。這正是我需要的。 +1。 – dstepan