识别控件以设置权限的好方法是什么?

时间:2012-04-12 09:03:52

标签: c# winforms architecture permissions

我需要实现权限。必须能够根据用户的权限制作控件和表单(in)visibele。

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

我考虑过为控件提供一个全名,例如:namespace.formName.nameOfControl。但我不喜欢这样,因为它很脆弱。当名称(空格)发生变化时,我也需要改变身份,我不希望这样,机会同事和我忘记更新这个是大的。

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

2 个答案:

答案 0 :(得分:0)

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

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

然后你可以浏览所有IAccessControled Controles

答案 1 :(得分:0)

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

我建议的方法是创建一个实现IExtenderProvider的自定义控件。 IExtenderProvider只允许您将自定义Propreties添加到表单上的控件。所以你可以添加一个“PermissionRequired”的名言,你可以在设计你的WinForm时设置它。

我找不到一些让我高兴的教程,但那些是我发现的最好的教程:.NET IExtenderProvider (C#)