【发布时间】:2012-07-07 16:28:50
【问题描述】:
在 ASP.Net MVC Web 应用程序中创建能够根据用户角色或用户本身限制其功能的用户控件的最佳实践和/或标准是什么?
换句话说,假设我有四个不同的网页,其中 90% 的内容完全相同(一些搜索字段、包含搜索结果的网格、一些 javascript...),每个网页可能有一个或两个其他搜索字段。 (请注意,每个页面上这些额外的搜索字段,对搜索结果都是有效的。另外请考虑我们在后台使用相同的存储过程,并且在搜索字段较少的页面中,我们将空值或默认值(根据情况)传递给它们)。
我们正在寻找一种方法来重构我们的代码,如果可能的话,可以在四个页面中的每一页中使用 USER CONTROL。
编辑:也许我应该将问题更正为这样的问题:如何避免将 标签放在视图中并使用类似于here 描述的方法,其中CRice 说:“最好让 viewdata 或 model 来表示视图要显示的内容,而视图可以简单地检查视图数据。一个控制器基类或一个动作上的过滤器可以重复使用这个非常简单和允许代码存在于一个地方。”为了解决我的问题?
人们一直强调检查用户角色部分。事实上,当我问这个问题时,我已经知道这一点。我不知道如何以正确的方式使用视图数据或模型或任何适合此类情况的方法。 (特别是使用reference question中描述的模型)
非常感谢您指导我完成此过程以及您的耐心。
【问题讨论】:
-
有多种方法可以在应用程序中实现基于角色的访问控制。使用权限属性装饰控制器操作是一种比较常见的做法,但我不知道这是否是最佳做法。
-
@48klocs 感谢您的回复,我明白了,但我对视图而不是控制器感到好奇。我的意思是如何呈现特定于控制角色的控件?
标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2