【问题标题】:Roles and Security in ASP.NET MVC4ASP.NET MVC4 中的角色和安全性
【发布时间】:2014-02-10 16:09:07
【问题描述】:

谁能告诉我在 ASP.NET MVC4 应用中实现角色和安全性的最佳方式。

我正在处理一个 MVC 项目,我想在该项目中实现角色和安全性。我定义了从数据库中获取的角色。但我不知道如何在我的项目中使用这些角色。我怎样才能建立一个连接(在 webconfig 或其他东西中),我可以从中声明 Action 方法上的角色,以便只有具有这些角色的用户才能访问该方法。

就像我有一些角色:读取、编辑、更新..我希望只有具有读取角色的用户只能根据角色分别执行读取操作和其他操作。

我知道这是一个非常广泛的问题。但我只想知道在我的应用程序中实现角色和安全性的最佳方式。

一步一步的过程是什么:

我是否需要在 webconfig 中建立一些连接,以便具有角色定义的数据注释工作或其他东西..

请帮帮我。谢谢。

【问题讨论】:

标签: c# asp.net-mvc-4 roles


【解决方案1】:

您使用的是哪种身份验证模式?表单身份验证具有选项 User.IsInRole 但要使其正常工作,您需要有Forms Authentication 到位。 User.IsInRole MSDN

您可以做的是create different views for Details, Insert/Update, Delete. 然后,在每个控制器上,您只允许具有您想要的角色的用户。

【讨论】:

  • 您能告诉我在 MVC4 中实现角色和安全性的最佳方式吗?我创建了一个自定义“AuthorizeAttribute”,我在我的操作方法上使用它
  • User.IsInRole() 还可以根据环境使用其他身份验证机制。
  • 我已经在控制器方法上定义了DataAnnotation。我只是想知道实现这些定义角色的最佳方式
  • @Farzi 您必须签发表单身份验证票并将您的角色存储在该票中。然后通过 User.IsInRole("YourRole") 获取角色。这就是为什么我问你使用的是什么类型的认证模式?我已经将它与表单身份验证一起使用。
【解决方案2】:

我认为您真正需要的是 RBAC。

用户有一个或多个角色,每个角色都有很多功能。

用户和角色,一对多或多对多
角色和功能,多对多

http://en.wikipedia.org/wiki/Role-based_access_control

添加一个 AuthorizeAttribute(eg: MyAuthorize) 类。

[MyAuthorize("Admin-User-Add")]
public ActionResult Add(){}

“Admin-User-Add”是“Add user action”功能的唯一键。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 2010-10-26
    • 1970-01-01
    • 2011-11-03
    • 2010-12-28
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 2016-02-06
    相关资源
    最近更新 更多