相关疑难解决方法(0)

允许多个角色访问控制器操作

现在我装饰一个这样的方法,让"成员"访问我的控制器动作

[Authorize(Roles="members")]
Run Code Online (Sandbox Code Playgroud)

如何允许多个角色?例如,以下内容不起作用,但它显示了我要做的事情(允许"成员"和"管理员"访问):

[Authorize(Roles="members", "admin")] 
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc controller roles

258
推荐指数
5
解决办法
16万
查看次数

MVC3 - 放置自定义属性类的位置

我正在深入研究自定义验证属性,并且很想知道其他人如何构建项目.您通常在哪里存储自定义属性?

我的第一个想法是简单地创建一个新文件夹并完成它.

有什么建议?

custom-attributes asp.net-mvc-3

13
推荐指数
2
解决办法
7265
查看次数

里面不能有带有动态代码的 [Authorize()]

我试图让授权接受角色作为枚举或智能枚举, 这样我就不必调试魔术字符串及其拼写错误

但我一直因这两个错误而陷入死胡同:

  • 属性构造函数参数“roles”的类型为“Role[]”,这不是有效的属性参数类型

  • 属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式

这是我的代码:

授权角色.cs

public class AuthorizeRoles : AuthorizeAttribute
{
    public AuthorizeRoles(params Role[] roles)
    {
        string allowed = string.Join(", ", roles.ToList().Select(x => x.Name));
        Roles = allowed;
    }
}
Run Code Online (Sandbox Code Playgroud)

角色.cs

public class Role
{
    public readonly string Name;

    public enum MyEnum  // added
    {
        Admin,
        Manager
    }

    public static readonly Role Admin = new Role("Admin");
    public static readonly Role Manager = new Role("Manager");

    public Role(string name)
    {
        Name = name;
    }

    public override string ToString()
    { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-core-mvc asp.net-core

3
推荐指数
1
解决办法
534
查看次数