[英]ASP.NET MVC: Override authorization filter roles for single action
我有一個像這樣注釋控制器類的授權過濾器:
[Authenticated(Roles = "read_mail", "contact_user")]
public class MailController : Controller { ... }
但是,有一種操作用戶只需要一種權限:
[Authenticated(Roles = "read_mail")]
public ActionResult Inbox() { ... }
由於當前設置,只有注釋類的過濾器被確認並執行適當的重定向。 有沒有辦法僅針對特定操作覆蓋它,還是應該從控制器中刪除過濾器並為每個操作定義它?
您可以按照 此處所述影響應用過濾器的順序。 對於您的用例,將Order
添加到您的屬性可能可以解決問題:
[Authenticated(Roles = "read_mail", "contact_user", Order = 1)]
public class MailController : Controller { ... }
[Authenticated(Roles = "read_mail", Order = 0)]
public ActionResult Inbox() { ... }
具有最低Order
的過濾器將首先運行。
編輯
我剛剛發現Order
不會有多大好處。 兩個過濾器仍會執行(僅以相反的順序)。 在控制器級別覆蓋過濾器:看看這個答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.