首页 > 解决方案 > 方法上的多个 AuthorizeAttribute 失败

问题描述

我在我的方法上使用了多个 AuthorizeAttribute,它给了我编译错误。此错误仅出现在构建机器上,并且不知何故不会出现在我的本地机器上。

Rosyln 错误 CS0579:重复的“AuthorizeAttribute”属性

从下面的 SO 帖子来看,使用多个授权属性似乎没问题。我尝试在我的自定义授权属性上添加这个 -> [AttributeUsage(AttributeTargets.All, AllowMultiple = true)] 但它似乎不起作用。

方法上的多个授权属性

是否可以使用多个authorizeAttribute?如果是,我错过了什么?

    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
    public class MyCustomAuthorizeAttribute : AuthorizeAttribute
        {
        }


 [MyCustomAuthorizeAttribute (permissions : new[]{"Permission1", "Permission2"})]
 [MyCustomAuthorizeAttribute (permissions : new[]:{"Permission3", "Permission4"})]    
 public string GetSomething(string someId)
        {
        }

标签: c#asp.net

解决方案


避免在属性中调用任何函数。代替

[MyCustomAuthorizeAttribute (permissions : new[]{"Permission1", "Permission2"})]

使用这样的代码:

[MyCustomAuthorizeAttribute(permissions: "Permission1,Permission2")]

您可以在属性对象中拆分字符串。


推荐阅读