Пользовательское меню в соответствии с ролью базы данных? - PullRequest
1 голос
/ 28 января 2009

Мне нужен ваш опыт программирования. Вот вопрос:

Когда пользователь входит в приложение WinForms (C # .NET), как я могу динамически назначить определенное меню (другое меню в зависимости от пользователя, вошедшего в мое приложение) в соответствии с ролью в базе данных?

Заранее благодарим за вашу поддержку, время и за то, что поделились своими знаниями, это действительно помогает.

Есть какой-нибудь гуру?

1 Ответ

0 голосов
/ 29 января 2009

Вы можете использовать функцию 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»).

...