我需要一些编程经验。这是问题所在:
当用户登录到WinForms应用程序(C#.NET)时,如何根据数据库中的角色动态分配定义的菜单(根据登录到我的应用程序的用户的不同菜单)?
提前感谢您的支持,时间和分享您的知识,这确实有帮助。
那里有任何古鲁?
答案 0 :(得分:0)
您可以使用IS_MEMBER('role')t-sql函数来检测它们具有的角色。我可能会将它包装在一个存储过程中并返回我关心的角色作为一组记录(即,用户拥有的所有角色)。
然后您只需使用以下代码:
if (loginEntity.IsAdmin)
{
MenuItem adminMenu = new MenuItem();
adminMenu.Text = Resources.AdminMenuText;
mainMenu.MenuItems.Add(adminMenu);
item = new MenuItem();
item.Text = Resources.ManageUsers;
item.Click += UserAdminClick;
adminMenu.MenuItems.Add(item);
...
}
您可以在其中创建菜单。 (我的loginEntity对象在这里调用一个类似的函数,并为我关心的每个角色设置一个位变量。)代码生成一个新的顶级菜单(假设已经定义了mainMenu),然后是它下面的“User Admin”项,假设当前用户具有管理员角色(例如,'securityadmin')。