C#如何判断用户权限,详细如下
问题:一个软件我有多个用户,但是我每个用户的权限不一样。比如admin我所有的权限都有,我用admin帐号登录。在admin下面我添加新帐号,我所以的权限都可以选择。如果User只有其中的几个权限,那么我用User登录,在User帐号下面添加用户,赋予用户的权限,只能在User有的权限给予。但是如何判断,在创建的时候判断这个用户的权限,在添加新用户时的权限 C# --------------------编程问答-------------------- 补图 --------------------编程问答-------------------- 看你的设计,只需要把选择用户的权限列读取出来就可以了然后根据权限列得到的字符串分隔,动态创建checkbox放在界面上即可 --------------------编程问答-------------------- LZ不觉得,同一类用户的权限应该一样吗? 这样用角色管理就容易多了 --------------------编程问答-------------------- 但是用户那边不是这样的要求啊,确实同一类用户权限好,用户那边的要求他那边的员工,每个人的权限不一定死一样的,所以这点不好 --------------------编程问答-------------------- 把用户各自的权限存到数据库里不就行了 --------------------编程问答--------------------
那就参照2楼大神 --------------------编程问答-------------------- 做权限列表,设计一个权限集合表 ,用户表, 每次赋予权限的时候,先去检查一下当前登录用户的权限。 --------------------编程问答-------------------- private void buttonAdd_Click(object sender, EventArgs e)
{
int index = ControlUserView.GetSelectedRows()[0];
var userData = ControlUserView.DataSource as List<User>;
if (userData[index].Privileges == "用户维护")
{
checkbox.用户维护.Checked = false;
}
if (userData[index].Privileges == "修改配置")
{
checkbox.修改配置.Checked = false;
}
if (userData[index].Privileges == "编辑方案")
{
checkbox.编辑方案.Checked = false;
}
if (userData[index].Privileges == "下载方案")
{
checkbox.下载方案.Checked = false;
}
if (userData[index].Privileges == "导出数据")
{
checkbox.导出数据.Checked = false;
}
using (var dForm = new TestIncrease())
{
if (dForm.ShowDialog() == DialogResult.OK)
{
userData.Add(new User(dForm.GetModel().ID, dForm.GetModel().Username, dForm.GetModel().Nickname, dForm.GetModel().Password, formatPrivileges(dForm.GetModel().Privileges),
dForm.GetModel().CreatedAt));
ControlUserView.RefreshData();
}
}
} --------------------编程问答-------------------- 权限表
资源表
行为动作表
角色表
这几个表一建立,你的权限也就出来了
--------------------编程问答-------------------- 问一下,上面那段代码放在那里,按现在这个位置放,我的buttonAnd这个按钮不触发了。所以各位帮忙看看应该放在那里 谢谢 --------------------编程问答-------------------- 很简单,建立一张用户表和角色表。角色表存:用户维护、修改配置等权限。
只要在后台有个设置的地方,设置那些用户有那些权限,这样就可以想做什么就可以做什么了。
主要:用户表(主表)-角色表(外键表),用户表和角色表为一对多关系。
补充:.NET技术 , C#