日期:2014-05-18  浏览次数:20878 次

高分求c# winform 操作员权限设置的代码例子
如题。管理员给操作员分配权限,如果给了他某项功能的权限,改操作员打开软件后才有此功能,否则按钮为灰色.在线等

------解决方案--------------------
有很多做法的。
我建了3个表:Privilege表中存放各个功能模块;Role表中存放用户及用户对应的角色;RolePrivilege表中存放角色对应的权限。
在用户登陆时,用静态变量CurrentUser保存该用户对象。这样在进到主界面时可根据用户权限来显示菜单:
C# code

private void CheckUserPrivilege()
{
    PrivilegeHandler mHandler = new PrivilegeHandler();
    List<W_UserPrivilegeInfo>  mList= null;
    mList = mHandler.GetByConditons("UType='" + CurrentUser.Instance.currentuser.UType + "'");

    if (mList != null)
    {
        for (int i = 0; i < mList.Count; i++)
        {
            W_UserPrivilegeInfo mObject = mList[i];

            TreeNode mNode = trvMain.Nodes[mObject.ModelName].Nodes[mObject.MenuName].Nodes[mObject.MenuNodName];
            mNode.Tag = mObject.MenuNodTag;
            mNode.ForeColor = Color.Black;
        }
    }
}

------解决方案--------------------
最清晰最方便方法就是操作数据库了 在数据库里加一个字断 就是判断权限问题 给权限的时候从数据库里读~~ 比如1表示管理员 2表示员工的话 给公权限的时候就通过SQL语句操作一下数据库 修改那个字断的值 在登陆的时候从数据库里读值 设置其中按钮或其它控件的Enabled属性或 Visible属性 来控制它的权限 也可以用哈稀表来完成
------解决方案--------------------
管理员 权限值:0,所有控件enable=true

操作员 权限值:1,部分控件enable=false
------解决方案--------------------
将每一个权限设定为一个权限标识码并放在一个字段中,
例如添加功能的权限为A,在程序运行的时候只要判断该字段是否包含A就可以知道其是否包含该权限了,有就设置button的enable为true,否则为false
------解决方案--------------------
探讨
我想知道数据库是怎么设计的?

------解决方案--------------------
同意楼上说法!