PrincipalPermission クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class PrincipalPermission Implements IPermission, IUnrestrictedPermission, ISecurityEncodable
[SerializableAttribute] [ComVisibleAttribute(true)] public sealed class PrincipalPermission : IPermission, IUnrestrictedPermission, ISecurityEncodable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class PrincipalPermission sealed : IPermission, IUnrestrictedPermission, ISecurityEncodable
解説コンストラクタにユーザー名とロールの ID 情報を渡すことにより、PrincipalPermission を使用して、この情報と一致するアクティブ プリンシパルの ID を要求できます。
アクティブ IPrincipal および関連付けられた IIdentity と一致するためには、指定した ID とロールの両方が一致する必要があります。null 参照 (Visual Basic では Nothing) ID 文字列を使用する場合は、すべての ID と一致する要求として解釈されます。null 参照 (Visual Basic では Nothing) ロール文字列を使用すると、すべてのロールと一致します。このため、name または role の null 参照 (Visual Basic では Nothing) パラメータを PrincipalPermission に渡すと、すべての IPrincipal の ID とロールに一致します。IIdentity が認証されたエンティティまたは認証されていないエンティティのどちらを表しているかを判断するだけの PrincipalPermission も構築できます。この場合、name と role は無視されます。
その他のほとんどのアクセス許可とは異なり、PrincipalPermission は、CodeAccessPermission を拡張しません。ただし、これは IPermission インターフェイスを実装します。これは、PrincipalPermission が、コードのアクセス許可ではないためです。つまり、このアクセス許可は、実行しているアセンブリの ID に基づいて与えられるものではありません。その代わりに、コード アクセスとコード ID アクセス許可で実行する場合と一貫した方法で、現在のユーザー ID に対して、操作 (Demand、Union、Intersect など) を実行することをコードに許可します。
重要 : |
|---|
| プリンシパルのアクセス許可を要求する前に、現在のアプリケーション ドメインのプリンシパル ポリシーを列挙値 WindowsPrincipal に設定する必要があります。既定では、プリンシパル ポリシーは UnauthenticatedPrincipal に設定されます。プリンシパル ポリシーを WindowsPrincipal に設定しないと、プリンシパルのアクセス許可の要求は失敗します。プリンシパルのアクセス許可を要求する前に、次のコードを実行する必要があります。 AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal). |
使用例2 人の異なる管理者権限を持つユーザーを表す 2 つの PrincipalPermission オブジェクトを作成し、2 つの和集合を形成して、要求を行う例を次に示します。Demand は、アクティブな IPrincipal の実装が、マネージャのロールを持つユーザー Bob、またはスーパバイザのロールを持つユーザー Louise のいずれかを表す場合にだけ成功します。
Dim id1 As String = "Bob" Dim role1 As String = "Manager" Dim PrincipalPerm1 As New PrincipalPermission(id1, role1) Dim id2 As String = "Louise" Dim role2 As String = "Supervisor" Dim PrincipalPerm2 As New PrincipalPermission(id2, role2) PrincipalPerm1.Union(PrincipalPerm2).Demand()
String id1 = "Bob"; String role1 = "Manager"; PrincipalPermission PrincipalPerm1 = new PrincipalPermission(id1, role1); String id2 = "Louise"; String role2 = "Supervisor"; PrincipalPermission PrincipalPerm2 = new PrincipalPermission(id2, role2); (PrincipalPerm1.Union(PrincipalPerm2)).Demand();
String^ id1 = "Bob"; String^ role1 = "Manager"; PrincipalPermission^ PrincipalPerm1 = gcnew PrincipalPermission( id1,role1 ); String^ id2 = "Louise"; String^ role2 = "Supervisor"; PrincipalPermission^ PrincipalPerm2 = gcnew PrincipalPermission( id2,role2 ); (PrincipalPerm1->Union( PrincipalPerm2 ))->Demand();
継承階層System.Security.Permissions.PrincipalPermission
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照PrincipalPermission コンストラクタ (PermissionState)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外
解説None は、認証されていないプリンシパルだけと一致します。Name は、空の文字列 ("") です。Role と Authenticated は、false にはなりません。Unrestricted は、すべてのプリンシパルと一致します。Name は null 参照 (Visual Basic では Nothing)、Role は null 参照 (Visual Basic では Nothing) です。
メモ |
|---|
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照PrincipalPermission コンストラクタ (String, String, Boolean)
アセンブリ: mscorlib (mscorlib.dll 内)
構文Dim name As String Dim role As String Dim isAuthenticated As Boolean Dim instance As New PrincipalPermission(name, role, isAuthenticated)
解説
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照PrincipalPermission コンストラクタ
オーバーロードの一覧| 名前 | 説明 |
|---|---|
| PrincipalPermission (PermissionState) | PermissionState を指定して、PrincipalPermission クラスの新しいインスタンスを初期化します。 |
| PrincipalPermission (String, String) | 指定した name と role で、PrincipalPermission クラスの新しいインスタンスを初期化します。 |
| PrincipalPermission (String, String, Boolean) | 指定した name、role と認証ステータスで、PrincipalPermission クラスの新しいインスタンスを初期化します。 |
参照PrincipalPermission コンストラクタ (String, String)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照PrincipalPermission メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Copy | 現在のアクセス許可のコピーを作成して返します。 |
| Demand | 現在のプリンシパルが、現在のアクセス許可によって指定されたプリンシパルと一致しているかどうかを実行時に判断します。 |
| Equals | オーバーロードされます。 オーバーライドされます。 |
| FromXml | XML エンコーディングから、指定した状態のアクセス許可を再構築します。 |
| GetHashCode | オーバーライドされます。 ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した PrincipalPermission オブジェクトのハッシュ コードを取得します。 |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| Intersect | 現在のアクセス許可と指定したアクセス許可の積集合を表すアクセス許可を作成して返します。 |
| IsSubsetOf | 現在のアクセス許可が、指定したアクセス許可のサブセットかどうかを判断します。 |
| IsUnrestricted | 現在のアクセス許可が無制限かどうかを示す値を返します。 |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| ToString | オーバーライドされます。 現在のアクセス許可を表す文字列を作成して返します。 |
| ToXml | アクセス許可とその現在の状態を表す XML エンコーディングを作成します。 |
| Union | 現在のアクセス許可と指定したアクセス許可の和集合を表すアクセス許可を作成します。 |
参照PrincipalPermission メンバ
宣言セキュリティ アクションと強制セキュリティ アクションの両方のために定義された言語構成要素を使用して、アクティブ プリンシパル (IPrincipal のトピックを参照) をチェックできるようにします。このクラスは継承できません。
PrincipalPermission データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Copy | 現在のアクセス許可のコピーを作成して返します。 |
| Demand | 現在のプリンシパルが、現在のアクセス許可によって指定されたプリンシパルと一致しているかどうかを実行時に判断します。 |
| Equals | オーバーロードされます。 オーバーライドされます。 |
| FromXml | XML エンコーディングから、指定した状態のアクセス許可を再構築します。 |
| GetHashCode | オーバーライドされます。 ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した PrincipalPermission オブジェクトのハッシュ コードを取得します。 |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| Intersect | 現在のアクセス許可と指定したアクセス許可の積集合を表すアクセス許可を作成して返します。 |
| IsSubsetOf | 現在のアクセス許可が、指定したアクセス許可のサブセットかどうかを判断します。 |
| IsUnrestricted | 現在のアクセス許可が無制限かどうかを示す値を返します。 |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| ToString | オーバーライドされます。 現在のアクセス許可を表す文字列を作成して返します。 |
| ToXml | アクセス許可とその現在の状態を表す XML エンコーディングを作成します。 |
| Union | 現在のアクセス許可と指定したアクセス許可の和集合を表すアクセス許可を作成します。 |
参照- PrincipalPermissionのページへのリンク
重要 :