是否可以在控制器上堆叠多个自定义AuthorizeAttribute
?
我尝试过这样的事情:
[IsOwner]
[IsFranchisee]
public class CartController : Controller
{
...
}
但它的行为是不稳定的。有时它有效,有时它不起作用(主要是后者)。
答案 0 :(得分:3)
是的,你可以。如果您喜欢AuthorizeAttribute
的来源,则会AllowMultiple = true
。
答案 1 :(得分:1)
通常,对于动态授权,控制器或操作会被赋予一个[授权]注释,然后在控制器或操作内部处理授权。
答案 2 :(得分:1)
您确定您的实施是否正确?
我问,因为除非您设置FilterAttributes
属性,否则AuthorizeAttribute
(Order
派生的)订单无法保证。
因为你说行为不稳定,我想也许有一个属性会取消另一个属性。例如,您的用户IsOwner == true
,但IsFranchisee == false
。也许是否授予权限取决于首先执行权限?
因此,您可以尝试为您的属性提供一个订单属性,并查看该行为是否仍然不稳定