1

我需要实现权限。必须可以根据用户的权限使控件和表单(中)可见。

因此,我需要一种方法来识别要为其设置权限的控件。该应用程序有点大并且仍在增长。所以,我申请权限的方式必须灵活。

我考虑过给控件一个全名,比如:namespace.formName.nameOfControl。但我不喜欢这个,因为它太脆弱了。当名称(空间)改变时,我也需要改变身份,我不想要这个,我和同事忘记更新这个的机会很大。

所以我的问题是,你认为什么是识别控件的好方法?有一个后台供管理员设置权限

4

2 回答 2

0

我建议所有可用的控件都必须实现一个定义的接口,比如“IAccessControled”,在那里你可以定义一个“PermissionKey”

由于此名称属于接口,因此它独立于控件具有的其他属性(例如显式接口实现)

然后您可以扫描所有 IAccessControled 控件

于 2012-04-12T09:14:52.320 回答
0

Boas Enkler 的回答是为诸如 Command 或 User Created 类设置权限的好方法。但是,正如您所提到的,它需要包装每个基本控件来管理它们的权限。

我推荐的方法是创建一个自定义控件来实现IExtenderProvider. 这IExtenderProvider只是让您将自定义添加Propreties到窗体上的控件。所以你可以添加一个“PermissionRequired”属性,你可以在设计你的 WinForm 时设置它。

我还没有找到一些真正让我满意的教程,但那些是我找到的最好的教程:.NET IExtenderProvider (C#)

于 2012-04-12T12:52:47.443 回答