クラスのカスタム属性を作成して、誰が呼び出しているかを制限したいと考えています。例えばC#でクラスの属性を "セキュリティ"にする方法は?
:
[Permission("Admin")]
public class MyData {
....
それをどのように行うには?だから私は本当に何らかのパーミッションクラスを作りたいと思っています。ここで
クラスのカスタム属性を作成して、誰が呼び出しているかを制限したいと考えています。例えばC#でクラスの属性を "セキュリティ"にする方法は?
:
[Permission("Admin")]
public class MyData {
....
それをどのように行うには?だから私は本当に何らかのパーミッションクラスを作りたいと思っています。ここで
既に存在するものを使用するか、独自のコードを記述してコードアクセスセキュリティアーキテクチャにフックします。
カスタムの実装:上記のリンクから
Creating Your Own Code Access Permissions
切り欠き:これはとてもシンプルなWeb検索があなたにこれを与え、本当に長い時間を回避されていますコードアクセス許可には、次の のステップが含まれます。そのいくつかはオプションです。各ステップは別のトピック に記載されています。
Permission
クラスを設計します。IPermission
とIUnrestrictedPermission
のインターフェイスを実装します。- パフォーマンスのため、または特殊なデータ型をサポートするために、必要に応じて
ISerializable
インターフェイスを実装します。- Handle XMLのエンコードとデコード。
Attribute
クラスを実装することにより、宣言型セキュリティのサポートを追加します。- 必要に応じて、あなたの許可のためにカスタムの許可を要求してください。
これは本当に興味のある1,2,5,6のステップです。
PermissionはAttributeから継承します。次に、クラス/メソッドを呼び出す前に、これらの属性のクラスを検査するコードを実装する必要があります。 .netフレームワークにはすでにこの機能が組み込まれています。 SecurityPermissionAttributeとFileIOPermissionAttributeは、自分自身をロールバックする前に考慮する必要がある2つの実装です。
'Attribute'クラスを継承するクラスを作成する必要があります –
何かをしたいですか?または、彼らはあなたがmybeがリフレクションによって手動でチェックする装飾のためだけですか? –
実際、私はカスタムを書く必要はありません。 PrincipalPermissionは、私が必要としていたものです。 – marko