|
|
1
1
一种可能的解决方案是在控制器操作中将控制点转换为视图属性(也许这些是相同的东西,不过,从你的问题中还不清楚)。这个想法是,你的控制点将转化为有意义的视图方向,如“AllowEdit”、“AllowSave”、“AllowDetailedView”等。这些将成为ViewData中的条目。 使用基控制器类扩展controller并为其提供ControlPoint集合。让您的过滤器在控制器中填充此集合。让基础控制器OnActionExecuted方法使用此集合,并在ViewResult的情况下,用视图指令集合的适当值填充ViewData。单个控制器操作还可以使用ControlPoint集合来确定是否需要根据视图是否会呈现额外数据为单个视图提供数据。 在您看来,不依赖于控制点本身,而是依赖于基础控制器确定的视图方向。这样,您就将视图与控制点逻辑解耦了。视图仅以对视图有意义的方式操作视图数据,而不操作在应用程序上下文中有意义的基于权限的数据。视图不关心如何或为什么设置特定的指令,它只需要根据指令的值进行适当的呈现。 |
|
|
2
0
嗯,你能不能简单地创建一个模板系统,为用户分配角色?即,创建一个具有“CustomerService”和“ConfigurationEditor”角色的用户模板“高级用户”,然后像往常一样使用角色系统(即roles.IsUserInRole(用户名、角色名))? 对于操作,您可以使用
对于视图,您可以使用
|