0

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

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

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

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

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

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

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

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

4

2 回答 2

0
  1. 您可以从在应用程序中实现Forms 身份验证开始。
  2. 将用户的角色存储在登录时的加密表单票证中并在您的控制器内部解密它以获取用户角色并将其传递到您的数据访问存储库。
  3. 在那里,您可以根据当前登录用户的角色获取相关字段并将其传递给您的视图。这将帮助您入门关于表单身份验证的初学者教程(代码项目)

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

于 2014-01-31T12:18:27.803 回答
0

我能想到的一种方法是,

你创造

公共类 RoleManagerFilter : ActionFilterAttribute

并在这个类中添加以下功能

无效 IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)

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

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

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

于 2014-01-31T12:29:08.903 回答