1

アクセス許可を実装する必要があります。ユーザーのアクセス許可に基づいて、コントロールとフォームを (非) 可視にすることが可能でなければなりません。

そのため、アクセス許可を設定するコントロールを特定する方法が必要です。アプリケーションは一種の大規模であり、まだ成長しています。したがって、パーミッションの適用方法は柔軟でなければなりません。

名前空間.formName.nameOfControl のように、コントロールに完全な名前を付けることを考えました。しかし、壊れやすいので、私はこれが好きではありません。名前 (スペース) が変わると、ID も変更する必要があります。これは望ましくありません。同僚と私がこれを更新するのを忘れる可能性は非常に高いです。

私の質問は、コントロールを特定する良い方法は何だと思いますか? 管理者がアクセス許可を設定するためのバック オフィスがあります。

4

2 に答える 2

0

すべての実行可能なコントロールは、「PermissionKey」を定義できる「IAccessControled」のような定義済みインターフェイスを実装する必要があることをお勧めします

この名前はインターフェイスに属しているため、コントロールが持つ他のプロパティ (明示的なインターフェイスの実装など) には依存しません。

次に、すべての IAccessControled コントロールをスキャンできます

于 2012-04-12T09:14:52.320 に答える
0

Boas Enkler の答えは、 Command や User Created クラスなどにアクセス許可を設定する良い方法です。ただし、言及したように、アクセス許可を管理するには、すべての基本コントロールをラップする必要があります。

私がお勧めするアプローチは、を実装するカスタム コントロールを作成することIExtenderProviderです。フォームのコントロールにIExtenderProviderカスタムを追加するだけです。Propretiesしたがって、「PermissionRequired」プロパティを追加して、WinForm の設計中に設定できます。

本当に満足できるチュートリアルを見つけることができませんでしたが、それらは私が見つけた中で最高のものです: .NET IExtenderProvider (C#)

于 2012-04-12T12:52:47.443 に答える