做项目需要实现不同账号使用功能的限制,参考了一些资料。自己做了些整理,记录一下免得以后忘记了。
首先思路很重要,只有思路清晰了,才知道怎么去实现:
(1)要有一个数据表去存放这些才能功能(定为A表),并且重要的是,这些存放在数据表A的菜单ID要和相对应功能窗体的·Tag对应这样在后边进行代码编写的时候才能做出判断。
(2)还需要一个数据表(B)来存放用户开放的权限
(3)就是将不同用户的功能权限设定好,然后通过循环在登录系统的时候进行判断是否开放。
上代码:这个是开放功能权限的部分
private void LoadUserPermission(Int32 userID)
{
isLoading = true;
SelectPermission(false);
B[] b = BOperator.GetPermissionByUserID(userID);//SQL 语句处理
for (int r = 1; r < flexGridList.Rows.Count; r++)
{
if (flexGridList.Rows[r].UserData is A)
{
A p = (A)flexGridList.Rows[r].UserData;
foreach (var userPermission in b)
{
if (userPermission.PermissionID == p.PermissionID)//菜单ID