SQLServer的用户权限管理,数据删除其重复的菜单项

SQLServer的用户权限管理,数据删除其重复的菜单项
菜单中,三个表之间有以下关系:
user_role = > roleid = > rolemenu
rolemenu = = >菜单> menuid
他们之间的业务关系是:
用户通过用户名登陆,得到了user_role列表,以及用户的角色了
通过user_role找到相应的菜单
有一个问题,是一个用户可以有多个角色,一个角色有多个菜单,当然,有一个菜单项,可以在这两个不同的角色,有一个问题,用户在管理员角色的文件菜单,并在新闻管理员文件菜单中的这个角色,所以会有两回完全相同的文件菜单,下面,我用匿名和不同的方法解决这个问题,代码如下:
复制代码代码如下所示:
类节目
{
static void main(String { } args)
{
#区域实体表的初始化
新的清单列表userrole =
{
新的user_role(01
新的user_role(01
新的user_role(02
};
rolemenu =新的列表清单
{
新的role_menu(2,3),
新的role_menu(1,1),
New Role_Menu (1,2),
新的role_menu(2,1),
新的role_menu(2,2),
};
列表菜单=新列表
{
新菜单(1,编辑
新菜单(2,文件
新菜单(3,视图
新菜单(4,系统
};
#铁心端部定点
VaR在LINQ =从1 userrole
在加入数据rolemenu在data1.roleid等于data2.roleid
在菜单上加入数据data2.menuid等于data3.menuid
在data1.userid.equals(01 )
选择新的
{
data1.userid UserID =,
menuid = data2.menuid,
菜单=数据,
};
(LINQ。不同)。OrderBy(我= i.menu。OrderNumber)(。列出)
foreach(我= >。console.writeline(用户ID:{ 0 },我{ 1 }菜单,菜单名称:{ 2 }
i.userid,i.menuid,i.menu定义));
Console.ReadKey();
}
}
#区域实体对象
类user_role
{
公共字符串标识符{有};集;
public int roleid {有};集;
公共user_role(字符串标识符,int roleid)
{
this.roleid = roleid;
this.userid =用户名;
}
}
菜单类
{
public int menuid {有};集;
公共字符串定义{有};集;
public int OrderNumber {得到;集;}
公共菜单(int menuid,字符串定义,int OrderNumber)
{
this.menuid = menuid;
this.menuname =定义;
this.ordernumber =数量;
}
}
类role_menu
{
public int roleid {有};集;
public int menuid {有};集;
公共role_menu(int,int roleid,menuid)
{
this.roleid = roleid;
this.menuid = menuid;
}
}
#铁心端部定点
结果就是我想看到的:

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部