必需的权限C#属性似乎不适用于按位或

时间:2013-10-14 14:47:05

标签: c# asp.net-mvc attributes bit-manipulation bitflags

// [RequiredPermission(Permissions.ProjectManagement | Permissions.UserManagement)] //doesn't work
// [RequiredPermission(Permissions.UserManagement)] //works
[RequiredPermission(Permissions.ProjectManagement)] //works
public ActionResult Index() {}

使用上面方法的属性,我似乎无法获得按位或工作。我认为或者可以在这里工作,任何人都可以解释为什么它没有?

因为这有效:[RequiredPermission(Permissions.UserManagement)]

这有效:[RequiredPermission(Permissions.ProjectManagement)]

但这并不是:[RequiredPermission(Permissions.ProjectManagement | Permissions.UserManagement)]

它没有抛出任何异常?

这是我们的旗帜:

[Flags]
    public enum Permissions : int
    {
        None = 0x0,
        Recruiting = 0x1,
        ProjectManagement = 0x2,
        UserManagement = 0x4,
        SystemManagement = 0x8,
    }

有没有其他方法可以做到这一点?

我正在尝试要么允许进入。 它不起作用意味着当它们一起使用时它不会让ProjectManagement用户进入。像[RequiredPermission(Permissions.ProjectManagement | Permissions.UserManagement)]。没有例外被抛出。

0 个答案:

没有答案