Asp.net mvc 4 mvc4中基于角色的访问

Asp.net mvc 4 mvc4中基于角色的访问,asp.net-mvc-4,razor,role-base-authorization,Asp.net Mvc 4,Razor,Role Base Authorization,我正在使用MVC4Razor(基于Windows的身份验证)开发Intranet web应用程序。 我希望获得正确方法的指导,以实现以下场景 我的应用程序有两个角色-人力资源和经理 我有一个视图,其中有一个显示员工类型的无线电控件。以下是数值。 1.暂时的 2.永久的 3.实习生 4.顾问 HR和Manager角色用户都可以访问上述视图。但是要求-人力资源部应该看到“永久”和“实习生”的价值,而管理者应该看到无线电控制中的“临时”和“顾问”的价值 以上4个值来自数据库表 我希望根据角色及其对Ht

我正在使用MVC4Razor(基于Windows的身份验证)开发Intranet web应用程序。 我希望获得正确方法的指导,以实现以下场景

我的应用程序有两个角色-人力资源和经理

我有一个视图,其中有一个显示员工类型的无线电控件。以下是数值。 1.暂时的 2.永久的 3.实习生 4.顾问

HR和Manager角色用户都可以访问上述视图。但是要求-人力资源部应该看到“永久”和“实习生”的价值,而管理者应该看到无线电控制中的“临时”和“顾问”的价值

以上4个值来自数据库表

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

我更愿意使用一种通用的方法来处理这个场景,而不是使用视图中的if条件根据角色过滤数据

请指导我需要使用什么方法来很好地处理这种情况。谢谢

  • 您可以从在您的应用程序中实现表单身份验证开始 应用程序
  • 登录时将用户角色存储在加密表单票证中& 在控制器内部对其解密以获取用户角色并将其传递给 您的数据访问存储库
  • 根据当前用户的角色,您可以在此处获取相关字段 已登录用户并将其传递给您的视图。这会让你开始的

  • 如果您在数据库中定义了基于角色的值,这将适用于您将来添加的任何用户。

    我可以想到的一种方法是

    你创造

    公共类RoleManager过滤器:ActionFilterAttribute

    在这个类中,您添加了以下函数

    作废IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)

    上述功能将检查会话中的角色(假定其处于会话中) 然后相应地过滤员工类型的数据

    以下是msdn链接,了解其背后的理论


    我使用了IActionFilter.OnResultExecuting函数来获得所需的结果。