如何在特定的mvc3控制器/操作中授权用户角色?

时间:2011-10-10 20:16:11

标签: asp.net-mvc asp.net-mvc-3 asp.net-membership

如何在控制器内为特定操作设置授权?

示例(授权登录的有效用户名):

    [Authorize]  
    public ActionResult ChangePassword()
    {
        return View();
    }

所以,我希望根据用户角色验证访问权限......如下所示:

    [Authorize]
    [AuthorizeRole="Admin"]     // This is psuedo but something like this   
    [AuthorizeRole="SuperUser"] // This is psuedo but something like this 
    public ActionResult ChangePassword()
    {
        return View();
    }

是否有类似上述内容?如果不是基于特定控制器/操作安全性的角色来保护访问的最佳方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:12)

这就是你需要的。

[Authorize(Roles = "Admin, SuperUser")] 

请参阅:http://msdn.microsoft.com/en-us/library/dd460317.aspx

答案 1 :(得分:3)

[Authorize(Users="Jacquo, Steve", Roles="Admin, SuperUser")]

用户:允许访问操作方法的以逗号分隔的用户名列表。

角色:以逗号分隔的角色名称列表。要访问操作方法,用户必须至少处于其中一个角色中。

http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx