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