2009-01-28 6 views
1

J'ai besoin de votre expérience en programmation. Lorsqu'un utilisateur se connecte à une application WinForms (C# .NET), comment puis-je attribuer dynamiquement un menu défini (menu différent selon l'utilisateur connecté à mon application) en fonction d'un rôle dans la base de données? ?Un menu utilisateur selon un rôle de base de données?

Merci d'avance pour votre soutien, votre temps et pour partager vos connaissances, cela aide vraiment.

N'importe quel gourou?

Répondre

0

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').

Questions connexes