我想在不创建自定义授权对象的情况下扩展Authorize Attribute的关键字过滤器。
我知道build in keyword是角色,用户。我想添加一个新的关键字调用级别,并查看用户访问级别是否大于特定级别。
这样我就可以为用户创建一个角色。
这个用法是
[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);
}
}
答案 0 :(得分:0)
这不可能仅为内置AuthorizeAttribute
添加新过滤器。您需要创建一个继承自AuthorizeAttribute
。
有关于创建自定义AuthorizeAttributes
的大量博客文章和问题。
编辑:
好的,好的开始。您的问题是您不能像尝试那样Level > 1
。假设您试图说明当用户Level
大于1时您要传递的身份验证,则可以在属性中更改您的属性以指示此情况。
E.g。
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);
}
}