使用参数asp.net mvc创建授权过滤器

时间:2010-08-12 06:34:09

标签: asp.net-mvc

我必须在asp.net mvc中开发一个授权过滤器。我的网站中有五类用户,而我的网站使用自定义创建的身份验证系统。现在我有一个控制器操作,其中有3个可以访问五种类型的用户。如何创建一个过滤器(基本上授权)并使用它满足我的要求?我想我需要创建带参数的授权过滤器。我应该可以使用这样的东西。

授权[UsersType = “管理员,会计师,运算符”]

使用的技术:Asp.net MVC

先谢谢

1 个答案:

答案 0 :(得分:4)

  1. 创建一个继承MVC的AuthorizeAttribute类的Attribute类。
  2. 在属性类中创建一个接受参数UsersType
  3. 的构造函数
  4. 覆盖所需的AuthorizeAttribute的相应方法。
  5. 在适当的覆盖方法中解析参数。

  6. public class AuthorizeUserAttribute :AuthorizeAttribute
    {
        private string[] _userType { get; set; }
    
        public AuthorizeUserAttribute(string UsersType)
        {
            // parse your usertypes here.
        }
    
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            // do the appropriate assigning and authorizing of methods here
            ....
            base.OnAuthorization(filterContext);
        }
    }
    

    现在,您可以在控制器中的Method中放置一个属性

    [AuthorizeUser("admin,accountant,operator")]
    public ActionMethod Index()
    {
        return View();
    }