2009-01-28 73 views
1

我需要一些編程經驗。這是問題:根據數據庫角色的用戶菜單?

當用戶登錄到WinForms應用程序(C#.NET)時,如何根據數據庫中的角色動態分配定義的菜單(取決於登錄到應用程序的用戶的不同菜單) ?

在此先感謝您的支持,時間和分享您的知識,這真的有所幫助。

任何古魯在那裏?

回答

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