2011-12-19 4 views
3

クラスのカスタム属性を作成して、誰が呼び出しているかを制限したいと考えています。例えばC#でクラスの属性を "セキュリティ"にする方法は?

[Permission("Admin")] 
public class MyData { 
.... 

それをどのように行うには?だから私は本当に何らかのパーミッションクラスを作りたいと思っています。ここで

+0

'Attribute'クラスを継承するクラスを作成する必要があります –

+0

何かをしたいですか?または、彼らはあなたがmybeがリフレクションによって手動でチェックする装飾のためだけですか? –

+0

実際、私はカスタムを書く必要はありません。 PrincipalPermissionは、私が必要としていたものです。 – marko

答えて

-1

MSDN Custom Attributes

カスタム属性を作成するために必要とされるものへのリンクです。

+0

この参照は古すぎ、有用ではありません。 – Klevi01

3

既に存在するものを使用するか、独自のコードを記述してコードアクセスセキュリティアーキテクチャにフックします。

カスタムの実装

:上記のリンクから

Code Access Security

Creating Your Own Code Access Permissions

切り欠き:これはとてもシンプルなWeb検索があなたにこれを与え、本当に長い時間を回避されていますコードアクセス許可には、次の のステップが含まれます。そのいくつかはオプションです。各ステップは別のトピック に記載されています。

  1. Permissionクラスを設計します。
  2. IPermissionIUnrestrictedPermissionのインターフェイスを実装します。
  3. パフォーマンスのため、または特殊なデータ型をサポートするために、必要に応じてISerializableインターフェイスを実装します。
  4. Handle XMLのエンコードとデコード。
  5. Attributeクラスを実装することにより、宣言型セキュリティのサポートを追加します。
  6. 必要に応じて、あなたの許可のためにカスタムの許可を要求してください。

これは本当に興味のある1,2,5,6のステップです。

0

PermissionはAttributeから継承します。次に、クラス/メソッドを呼び出す前に、これらの属性のクラスを検査するコードを実装する必要があります。 .netフレームワークにはすでにこの機能が組み込まれています。 SecurityPermissionAttributeとFileIOPermissionAttributeは、自分自身をロールバックする前に考慮する必要がある2つの実装です。

関連する問題