Vous pouvez utiliser la fonction IS_MEMBER ('rôle') t-sql pour détecter les rôles qu'ils ont. Je l'intégrerais probablement dans une procédure stockée et renverrais des rôles qui m'intéressent en tant qu'ensemble d'enregistrements (c'est-à-dire, tous les rôles dont l'utilisateur a besoin).
Ensuite, vous simplement vous utilisez le code comme:
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);
...
}
où vous créez vos menus. (Mon objet loginEntity appelle une fonction similaire et définit une variable bit pour chaque rôle qui me tient à cœur.) Le code génère un nouveau menu de niveau supérieur (en supposant que mainMenu est déjà défini), puis un élément "User Admin" en dessous, tous supposent que les utilisateurs actuels ont un rôle d'administrateur (par exemple, 'securityadmin').