我需要你的一些编程经验。这是问题:
当用户登录 WinForms 应用程序 (C#.NET) 时,如何根据数据库中的角色动态分配定义的菜单(不同的菜单取决于登录到我的应用程序的用户)?
提前感谢您的支持、时间和分享您的知识,这真的很有帮助。
有高手吗?
您可以使用 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 已经定义),然后是它下面的“用户管理”项,所有假设当前用户具有管理员角色(例如,'securityadmin')。