Asp.net mvc MVC3控制器中的堆叠授权

Asp.net mvc MVC3控制器中的堆叠授权,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,是否可以在控制器上堆叠多个自定义属性 我试过这样做: [IsOwner] [IsFranchisee] public class CartController : Controller { ... } 但它的行为是不稳定的。有时有效,有时无效(主要是后者) 是的,你可以。如果您喜欢在源代码处为authorized属性,那么它有AllowMultiple=true可以。如果您喜欢在源代码处为authorized属性,它有AllowMultiple=true通常用于动态授权,控制器或操作会

是否可以在控制器上堆叠多个自定义属性

我试过这样做:

[IsOwner]
[IsFranchisee]
public class CartController : Controller
{
    ...
}

但它的行为是不稳定的。有时有效,有时无效(主要是后者)

是的,你可以。如果您喜欢在源代码处为
authorized属性
,那么它有
AllowMultiple=true

可以。如果您喜欢在源代码处为
authorized属性
,它有
AllowMultiple=true
通常用于动态授权,控制器或操作会被赋予一个单一的[Authorize]注释,然后在控制器或操作内部处理授权。

通常用于动态授权,控制器或操作被赋予一个[Authorize]注释,然后在控制器或操作内部处理授权。

您确定您的实现是正确的吗? 我之所以这样问,是因为除非您设置
order
属性,否则对于
FilterAttributes
(其
AuthorizeAttribute
派生自)没有保证订单

因为你说这种行为是不稳定的,我想也许一个属性抵消了另一个属性。例如,您的用户
IsOwner==true
,但
is特许经营人==false
。也许是否授予权限取决于哪个先执行


因此,您可以尝试为属性指定一个order属性,看看行为是否仍然不稳定

您确定您的实现是正确的吗? 我之所以这样问,是因为除非您设置
order
属性,否则对于
FilterAttributes
(其
AuthorizeAttribute
派生自)没有保证订单

因为你说这种行为是不稳定的,我想也许一个属性抵消了另一个属性。例如,您的用户
IsOwner==true
,但
is特许经营人==false
。也许是否授予权限取决于哪个先执行


因此,您可以尝试为属性指定一个order属性,看看行为是否仍然不稳定

没有想到这一点。但是我最终改变了我的实现,没有想到这一点。但我最终改变了我的实现。