Asp.net

為什麼是包含在以下範例中?

  • May 6, 2009

?萬用字元代表未經身份驗證的使用者,而*代表所有使用者,經過身份驗證和未經身份驗證。我的書展示了以下 URL 授權範例:

<authorization>
 <deny users="?" />
 <allow users="dan,matthew" />
 <deny users="*" />
</authorization>

但是上面的程式碼是否與以下程式碼具有相同的效果:

<authorization>
 <allow users="dan,matthew" />
 <deny users="*" />
</authorization>

<deny users="?" />或者作者是否出於某種原因也包括 規則?

ASP.NET 優先授予配置文件的訪問權限。在潛在衝突的情況下,第一個發生的授權優先。所以,

deny user="?" 

拒絕匿名使用者的訪問。然後

allow users="dan,matthew" 

授予該使用者訪問權限。最後,它拒絕所有人訪問。除了 dan,matthew 之外的所有人都被拒絕訪問,這讓所有人都震驚了。

編輯添加:正如@Deviant 指出的那樣,拒絕未經身份驗證的訪問是沒有意義的,因為最後一個條目也包括未經身份驗證的內容。可以在以下位置找到討論此主題的一個很好的部落格條目:Guru Sarkar 的部落格

引用自:https://stackoverflow.com/questions/831994