【问题标题】:Role based security asp.net mvc基于角色的安全 asp.net mvc
【发布时间】:2015-08-10 17:45:24
【问题描述】:

我很想知道在 MVC 中使用基于角色的安全性的最佳实践是什么:
如何保护您的操作并使其只能由特定角色访问?

【问题讨论】:

    标签: c# .net asp.net-mvc security


    【解决方案1】:

    如果您正确设置了 ASP.Net 成员资格提供程序,您可以轻松地使用 [Authorize] 属性来指定不同角色或用户的访问权限。

    要要求用户登录,请使用:

    [Authorize]
    public class SomeController : Controller
    
    // Or
    [Authorize]
    public ActionResult SomeAction()
    

    要限制特定角色的访问,请使用:

    [Authorize(Roles = "Admin, User")]
    public class SomeController : Controller
    
    // Or
    [Authorize(Roles = "Admin, User")]
    public ActionResult SomeAction()
    

    要限制特定用户的访问,请使用:

    [Authorize(Users = "Charles, Linus")]
    public class SomeController : Controller
    
    // Or
    [Authorize(Users = "Charles, Linus")]
    public ActionResult SomeAction()
    

    【讨论】:

    • 如果您希望您的角色/权限在数据库中是动态的怎么办?
    • @JoePhilllips 创建自定义属性和 onAuthorize 处理程序。
    • 我喜欢 Authorize 方法的装饰。这是一个后续问题:如果我们创建了一个活动目录组来处理规则的例外情况......例如一个名为“MyApp_AccessDenied”的组......有没有办法使用它......即 Authorize 装饰的否定版本......就像 DenyAuthorize 装饰?
    猜你喜欢
    • 1970-01-01
    • 2017-11-29
    • 2012-03-18
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    相关资源
    最近更新 更多