我需要实现权限。必须能够根据用户的权限制作控件和表单(in)visibele。
所以,我需要一种方法来识别设置权限的控件。该应用程序有点大,仍在增长。因此,我应用权限的方式必须灵活。
我考虑过为控件提供一个全名,例如:namespace.formName.nameOfControl。但我不喜欢这样,因为它很脆弱。当名称(空格)发生变化时,我也需要改变身份,我不希望这样,机会同事和我忘记更新这个是大的。
所以我的问题是,您认为识别控件的好方法是什么?管理员可以设置后台以设置权限
答案 0 :(得分:0)
我建议所有可用的控件必须实现一个定义的接口,如“IAccessControled”,你可以定义一个“PermissionKey”
由于此名称属于接口,因此它与控件具有的其他属性(例如显式接口实现)无关
然后你可以浏览所有IAccessControled Controles
答案 1 :(得分:0)
Boas Enkler的答案是为Command或User Created类设置权限的好方法。但是,正如您所提到的,它需要包装每个基本控件来管理其权限。
我建议的方法是创建一个实现IExtenderProvider
的自定义控件。 IExtenderProvider
只允许您将自定义Propreties
添加到表单上的控件。所以你可以添加一个“PermissionRequired”的名言,你可以在设计你的WinForm时设置它。
我找不到一些让我高兴的教程,但那些是我发现的最好的教程:.NET IExtenderProvider (C#)