Asp.net mvc 4 MVC 4模型字段自定义授权

Asp.net mvc 4 MVC 4模型字段自定义授权,asp.net-mvc-4,Asp.net Mvc 4,我们正在创建一个MVC4应用程序,该应用程序需要授权用户根据其角色成员身份查看某些模型字段和/或与之交互 例如,如果模型具有字段SSN,则仅当用户是管理员角色的成员时,才应允许其查看此字段。一旦显示,用户应能够修改它只有当成员的配置文件_管理员角色。换句话说,如果用户不是管理员角色的成员,则不应呈现SSN字段;如果用户不是概要文件\ U管理员角色的成员,则应禁用SSN字段。哪些角色具有权限应由站点管理员通过管理员UI进行控制 一种可能的解决方案是在局部视图中包装SSN字段,然后在自定义视图引擎中

我们正在创建一个MVC4应用程序,该应用程序需要授权用户根据其角色成员身份查看某些模型字段和/或与之交互

例如,如果模型具有字段SSN,则仅当用户是管理员角色的成员时,才应允许其查看此字段。一旦显示,用户应能够修改它只有当成员的配置文件_管理员角色。换句话说,如果用户不是管理员角色的成员,则不应呈现SSN字段;如果用户不是概要文件\ U管理员角色的成员,则应禁用SSN字段。哪些角色具有权限应由站点管理员通过管理员UI进行控制

一种可能的解决方案是在局部视图中包装SSN字段,然后在自定义视图引擎中处理渲染。然而,这种方法要求我们想要控制的每个字段都在局部视图中,如果用户想要控制另一个字段(比如HireDate),则需要更改代码

我们希望通过在元数据类中使用自定义属性来实现这一点,如下所示:

[CustomFieldAuthorizeAttribute]
public string SSN { get; set; }
我们将在数据库中保留每个字段的授权信息,如下所示:

FieldName       RoleId      AllowView      AllowEdit
SSN             1           True           False   
当该属性执行时,它将检查当前登录用户的角色成员身份,并确定查看和编辑此字段的权限,然后它将注入相应的html属性,如class=“hidden”或disabled=“disabled”

这样,如果用户想要为另一个字段添加授权,我们只需在数据库中为此字段创建一条记录。自定义属性将从那里拾取它

有可能实现这样的功能吗


多谢各位

对于那些面临这种情况的人,我使用中描述的概念来创建必要的功能。稍微调整一下,解决方案就完全按照要求工作了

谢谢