是否可以在控制器上堆叠多个自定义AuthorizeAttribute
?MVC3控制器堆叠授权
我试图做这样的事情:
[IsOwner]
[IsFranchisee]
public class CartController : Controller
{
...
}
但它的行为是不稳定的。有时它起作用,有时它不起作用(主要是后者)。
是否可以在控制器上堆叠多个自定义AuthorizeAttribute
?MVC3控制器堆叠授权
我试图做这样的事情:
[IsOwner]
[IsFranchisee]
public class CartController : Controller
{
...
}
但它的行为是不稳定的。有时它起作用,有时它不起作用(主要是后者)。
你确定你的实现是正确的吗? 我在问,因为FilterAttributes
没有保证的订单,(其中AuthorizeAttribute
派生自),除非你设置了Order
属性。
因为你说的行为是不稳定的,我想也许一个属性取消了其他属性。例如您的用户IsOwner == true
,但是IsFranchisee == false
。可能是否授予权限取决于首先执行哪个?
所以,你可以试着给你的属性的顺序属性,看看行为仍然是不稳定的
是的,你可以。如果您喜欢AuthorizeAttribute
的来源,它有AllowMultiple = true
。
通常,对于动态授权,控制器或操作会被赋予一个[Authorize]批注,然后在控制器或操作内部处理授权。
没想到这一点。但最后我改变了我的实现。 – Ron 2011-12-16 15:07:21