PrincipalPermissionAttribute クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ <AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method, AllowMultiple:=True, Inherited:=False)> _ Public NotInheritable Class PrincipalPermissionAttribute Inherits CodeAccessSecurityAttribute
[SerializableAttribute] [ComVisibleAttribute(true)] [AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple=true, Inherited=false)] public sealed class PrincipalPermissionAttribute : CodeAccessSecurityAttribute
[SerializableAttribute] [ComVisibleAttribute(true)] [AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Method, AllowMultiple=true, Inherited=false)] public ref class PrincipalPermissionAttribute sealed : public CodeAccessSecurityAttribute
PrincipalPermissionAttribute を使用すると、コードを実行中のユーザーが指定したロールに所属するか認証されていることを宣言によって要求できます。Unrestricted を使用すると、Authenticated が true に設定され、Name と Role が null 参照 (Visual Basic では Nothing) に設定された PrincipalPermission が作成されます。
宣言の許容スコープは、使用する SecurityAction によって異なります。PrincipalPermissionAttribute はアセンブリ レベルでは適用できません。
セキュリティ属性によって宣言されたセキュリティ情報は、属性ターゲットのメタデータに格納され、実行時にシステムによってアクセスされます。セキュリティ属性は宣言セキュリティにだけ使用されます。強制セキュリティの場合は、対応するアクセス許可クラスを使用します。
重要 : プリンシパルのアクセス許可を要求する前に、現在のアプリケーション ドメインのプリンシパル ポリシーを列挙値 WindowsPrincipal に設定する必要があります。既定では、プリンシパル ポリシーは UnauthenticatedPrincipal に設定されます。プリンシパル ポリシーを WindowsPrincipal に設定しないと、プリンシパルのアクセス許可の要求は失敗します。プリンシパルのアクセス許可を要求する前に、次のコードを実行する必要があります。AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).
PrincipalPermission を宣言して使用する現在のユーザーが Bob であり、スーパバイザのロールに所属していることを要求する方法を次の例に示します。
<PrincipalPermissionAttribute(SecurityAction.Demand, _ Name := "Bob", Role := "Supervisor")> Public Class SampleClass
[PrincipalPermissionAttribute(SecurityAction.Demand, Name="Bob", Role="Supervisor")]
/** @attribute PrincipalPermissionAttribute(SecurityAction.Demand, Name = "Bob", Role = "Supervisor") */
ロールのメンバシップにかかわらず、現在のユーザーの ID が Bob であることを要求する方法を次の例に示します。
System.Attribute
System.Security.Permissions.SecurityAttribute
System.Security.Permissions.CodeAccessSecurityAttribute
System.Security.Permissions.PrincipalPermissionAttribute
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- PrincipalPermissionAttribute クラスのページへのリンク