C# 授权属性扩展新关键字

C# 授权属性扩展新关键字,c#,asp.net-mvc,authorize-attribute,C#,Asp.net Mvc,Authorize Attribute,我想在不创建自定义授权对象的情况下扩展Authorize属性的关键字过滤器 我知道内置关键字是角色、用户。我想添加一个新的关键字调用级别,看看用户访问级别是否大于某个级别 这将允许我只为用户创建一个角色 这个的用法是 [Authorize(level > 1)] 请让我知道,如果你需要更多的信息,使你更好地了解我试图解决的问题 我已经看过了,但还不能解决这个问题。你能提供一个代码示例吗?这就是我的目的。我在使用级别过滤器时出错 using System; using System.Col

我想在不创建自定义授权对象的情况下扩展Authorize属性的关键字过滤器

我知道内置关键字是角色、用户。我想添加一个新的关键字调用级别,看看用户访问级别是否大于某个级别

这将允许我只为用户创建一个角色

这个的用法是

[Authorize(level > 1)]
请让我知道,如果你需要更多的信息,使你更好地了解我试图解决的问题

我已经看过了,但还不能解决这个问题。你能提供一个代码示例吗?这就是我的目的。我在使用级别过滤器时出错

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
[Auth(Level > 1)]
public ActionResult Index()
{
}

public class Auth : AuthorizeAttribute
{
    public int Level { get; set; }
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      base.OnAuthorization(filterContext);
    }
}

仅向内置的
authorized属性添加新过滤器是不可能的。您将需要创建一个从
AuthorizeAttribute
继承的新属性

关于创建自定义
AuthorizeAttributes
,有大量的博客帖子和问题

编辑: 好的,好的开始。您的问题是,您不能像正在尝试的那样执行
Level>1
。假设您试图说明当用户
级别
大于1时要通过什么身份验证,您可以更改属性中的属性以指示这一点

例如


我已经看过了,但还没有弄清楚如何让自定义auth中的新关键字正常工作。你能提供样品吗。这就是我到目前为止所得到的。@user2085818我已经为您提供了一个示例
public class Auth : AuthorizeAttribute
{
    public int MinLevel { get; set; }

    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        //This is where you will need to determine if the user is authorized based upon the minimum level.
        base.OnAuthorization(filterContext);
    }
}