例子
用户“jtirado”被分配角色“HR-Assistant”,可以访问路由“mymvcapp/employeeee/edit/1452”来编辑员工(id:1452)数据。
作为“HR-Assistant”,该用户可以更改员工电话号码和电子邮件,可以查看员工工资但不能编辑金额。
电话号码、电子邮件、工资是数据库字段,由视图上的“asp.net-mvc-control”或“HTML-control”表示/呈现。所以我想根据用户的角色限制对这些控件的访问。
以往的经验
我之前使用 MasterPage、BasePage 类和 RoleBasedAccessControl 数据库模型为经典的 3 层 ASP.Net 3.5 Web 表单应用程序完成了此操作。
MasterPage 根据分配的角色构建用户可以访问的选项菜单。
BasePage 类检查用户是否有权访问所需页面,如果是,则检查用户可以编辑哪些控件(例如:DdlClientType、TxtLastName、ChkIsActive)。
这样,我不必使用 if-then 语句来检查权限,而且我可以创建任意数量的角色,为他们提供任何权限,而无需更改任何 C# 代码。
我计划为这个新的 MVC 应用程序使用相同的 RoleBasedAccessControl 数据库模型。
问题
所以我的问题是关于如何使用 ASP.Net MVC 3 实现 MasterPage 和 BasePage 类,或者是否有另一种实现方式,以及我是否应该以其他方式实现。
在我看来,ViewMasterPage 是与 Web-Forms-MasterPages 等效的 MVC。我还听说过 Razor 布局页面。
无论如何,我想我应该在控制器中处理所有这些。
我将使用:
- ASP.NET MVC 3.0
- 剃刀
我检查了这些帖子:
但它们并不完全适合我的情况。