2016-10-19 93 views
0

我正在使用asp.net和.net框架版本4.0。如何动态管理基于角色的asp.net控件可编辑状态

我有一个页面带有多个输入/选择控件,如文本框,下拉列表复选框等。此页面可以被不同类型的用户访问,并且基于用户类型,每个页面控件都可以配置为编辑访问启用/禁用),所以为了达到这个要求,我们在数据库表中存储了每个控件ID,用户类型和可访问权限(启用/禁用)。在page_load上,我们从配置表中获取数据,然后在页面上找到每个控件并设置启用属性。

这种方法工作到目前为止,但我想处理它与一些其他可能的或任何内置的asp.net功能。

回答

0

存储控制ID与UI紧密相连。我个人喜欢将功能存储在数据库中,而不是控制ID。

主要原因是当添加新功能时,您只需根据该功能修改UI (添加或删除控件)。如果您以后必须迁移到不同的用户界面,如ASP.Net MVC或UWA,则可以轻松转换它们。

例如,我将以下内容存储在数据库中。

UserId | Insert | Update | Delete 
--------------------------------- 
    1 | True | True | False 
    2 | False | False | False 

在Web窗体中,可以使用Panel控件根据功能显示或隐藏多个控件。

+0

谢谢,我关心的不是关于插入更新或删除操作,这已经在顶层sequirity上实现,我们有第二级sequirity,用户可以根据给予特定用户或用户类型的特定权限在contols中输入数据。例如,我们在页面中有40个输入控件,其中一些用户/用户组只能在25个控件中输入数据,并且该控件存在于不同的面板上。 –

+0

插入,更新删除只是假设的例子。底线是不存储控制ID,这不是一个好的设计;相反,您想要存储功能*,例如AllowPurchase *。然后按照功能隐藏***面板***。 *当您稍后迁移到MVC时,您可以使用** PartialView **轻松替换面板。* – Win