あなたのプログラミング経験が必要です。問題は次のとおりです。
ユーザーが WinForms アプリケーション (C#.NET) にログインするとき、定義済みのメニュー (アプリにログインしているユーザーに応じて異なるメニュー) をデータベースのロールに従って動的に割り当てるにはどうすればよいですか?
あなたのサポート、時間、そしてあなたの知識を共有してくれてありがとう、それは本当に役に立ちます.
そこに教祖はいますか?
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」)を持っていることを前提としています。