【问题标题】:Role based access in MVC 4 RazorMVC 4 Razor 中基于角色的访问
【发布时间】:2014-01-31 20:29:08
【问题描述】:

我正在使用 MVC 4 Razor(基于 Windows 的身份验证)开发 Intranet Web 应用程序。 我想获得指导以正确实施以下方案。

我的应用程序有 2 个角色 - HR 和经理。

我有一个视图,它有一个显示员工类型的单选控件。以下是值。 1. 临时 2. 永久 3. 实习生 4. 顾问

HR 和 Manager 角色用户都可以访问上述视图。但要求 - HR 应该看到“Permanent”和“Intern”值,而 Manager 应该看到 Radio 控件中的“Temporary”和“Consultant”值。

以上 4 个值均来自数据库表。

我想根据角色及其对 Htmlcontrol 和 Htmlcontrol(单选按钮)绑定数据的访问权限来授权用户。

我更愿意使用通用方式来处理这种情况,而不是使用视图中的 if 条件根据角色过滤数据。

请指导我处理这种情况所需的方法。谢谢。

【问题讨论】:

    标签: asp.net-mvc-4 razor role-base-authorization


    【解决方案1】:

    我能想到的一种方法是,

    你创造

    公共类 RoleManagerFilter : ActionFilterAttribute

    并在这个类中添加以下函数

    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)

    上述函数将从会话中检查角色(假设它在会话中) 然后相应地过滤员工类型的数据

    这里是其背后理论的 msdn 链接。

    http://msdn.microsoft.com/en-us/library/dd410056%28v=vs.100%29.aspx

    【讨论】:

    • 我已经使用 IActionFilter.OnResultExecuting 函数来获得想要的结果。
    【解决方案2】:
    1. 您可以从在您的 申请。
    2. 在登录时将用户的角色存储在加密表单票证中 & 在您的控制器内部解密它以获取用户角色并将其传递给 您的数据访问存储库。
    3. 根据当前角色获取相关字段 登录用户并将其传递给您的视图。这会让你开始A beginner's tutorial on Forms Authentication (Code Project)

    这将适用于您将来添加的尽可能多的用户,前提是您在数据库中定义了基于角色的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2011-10-12
      • 1970-01-01
      相关资源
      最近更新 更多