1

あなたのプログラミング経験が必要です。問題は次のとおりです。

ユーザーが WinForms アプリケーション (C#.NET) にログインするとき、定義済みのメニュー (アプリにログインしているユーザーに応じて異なるメニュー) をデータベースのロールに従って動的に割り当てるにはどうすればよいですか?

あなたのサポート、時間、そしてあなたの知識を共有してくれてありがとう、それは本当に役に立ちます.

そこに教祖はいますか?

4

1 に答える 1

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」)を持っていることを前提としています。

于 2009-01-28T21:10:32.597 に答える