1

我需要你的一些编程经验。这是问题:

当用户登录 WinForms 应用程序 (C#.NET) 时,如何根据数据库中的角色动态分配定义的菜单(不同的菜单取决于登录到我的应用程序的用户)?

提前感谢您的支持、时间和分享您的知识,这真的很有帮助。

有高手吗?

4

1 回答 1

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 已经定义),然后是它下面的“用户管理”项,所有假设当前用户具有管理员角色(例如,'securityadmin')。

于 2009-01-28T21:10:32.597 回答