我在指定類方法上的兩個單獨的授權屬性時遇到問題:如果兩個屬性中的任何一個屬性都爲true,則允許用戶訪問。方法上的多個授權屬性
的Athorization類看起來是這樣的:
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class AuthAttribute : AuthorizeAttribute {
. . .
和行動:
[Auth(Roles = AuthRole.SuperAdministrator)]
[Auth(Roles = AuthRole.Administrator, Module = ModuleID.SomeModule)]
public ActionResult Index() {
return View(GetIndexViewModel());
}
有沒有辦法解決這個問題的方式還是我需要重新考慮我的方法呢?
這是要在MVC2中運行。
找到更多關於這方面的信息纔有可能創造另一個授權屬性(即'公共類MultipleAuthOrAttribute {'',將作爲輸入幾個'AuthAttributes'? – adamse
您無法創建接受其他屬性實例的屬性。屬性類構造函數只能接受編譯時有效值/原始類型。這就是爲什麼'AuthorizeAttribute'將角色作爲一個字符串。 –
有人可以提供官方文檔的參考,該文檔支持多個'AuthorizeAttribute'實例作爲邏輯'AND'處理的聲明。在我自己的測試中,過濾器的順序看起來很重要,第一個過濾器最後說了驗證是否成功。 –