次の方法で共有


PrincipalPermissionAttribute クラス

宣言セキュリティを使用して、 PrincipalPermission のセキュリティ アクションをコードに適用できるようにします。このクラスは継承できません。

この型のすべてのメンバの一覧については、PrincipalPermissionAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.Security.Permissions.SecurityAttribute
         System.Security.Permissions.CodeAccessSecurityAttribute
            System.Security.Permissions.PrincipalPermissionAttribute

<AttributeUsage(AttributeTargets.Class Or AttributeTargets.Method)>
<Serializable>
NotInheritable Public Class PrincipalPermissionAttribute   Inherits CodeAccessSecurityAttribute
[C#]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
[Serializable]
public sealed class PrincipalPermissionAttribute :   CodeAccessSecurityAttribute
[C++]
[AttributeUsage(AttributeTargets::Class |
   AttributeTargets::Method)]
[Serializable]
public __gc __sealed class PrincipalPermissionAttribute : public   CodeAccessSecurityAttribute
[JScript]
public
   AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)
 Serializable
class PrincipalPermissionAttribute extends   CodeAccessSecurityAttribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

PrincipalPermissionAttribute を使用すると、コードを実行中のユーザーが指定したロールに所属するか認証されていることを宣言によって要求できます。 Unrestricted を使用すると、 Authenticatedtrue に設定され、 NameRole が null 参照 (Visual Basic では Nothing) に設定された PrincipalPermission が作成されます。

宣言の許容スコープは、使用する SecurityAction によって異なります。 PrincipalPermissionAttribute はアセンブリ レベルでは適用できません。

セキュリティ属性によって宣言されたセキュリティ情報は、属性ターゲットのメタデータに格納され、実行時にシステムによってアクセスされます。セキュリティ属性は宣言セキュリティにだけ使用されます。強制セキュリティの場合は、対応するアクセス許可クラスを使用します。

使用例

[Visual Basic, C#, C++] PrincipalPermission を宣言して使用する現在のユーザーが Bob であり、スーパバイザのロールに所属していることを要求する方法を次の例に示します。

 
<PrincipalPermissionAttribute(SecurityAction.Demand, _
 Name := "Bob", Role := "Supervisor")> Public Class SampleClass

[C#] 
[PrincipalPermissionAttribute(SecurityAction.Demand, Name="Bob",
Role="Supervisor")]

[C++] 
[PrincipalPermissionAttribute(SecurityAction::Demand, Name=S"Bob",
Role=S"Supervisor")]

[Visual Basic, C#, C++] ロールのメンバシップにかかわらず、現在のユーザーの ID が Bob であることを要求する方法を次の例に示します。

 
<PrincipalPermissionAttribute(SecurityAction.Demand, _
 Name := "Bob")> Public Class SampleClass

[C#] 
[PrincipalPermissionAttribute(SecurityAction.Demand, Name="Bob")]

[C++] 
[PrincipalPermissionAttribute(SecurityAction::Demand, Name=S"Bob")]

[Visual Basic, C#, C++] ユーザーが認証されていることだけを要求する方法を次の例に示します。

 
<PrincipalPermissionAttribute(SecurityAction.Demand, _
 Authenticated := True)> Public Class SampleClass

[C#] 
[PrincipalPermissionAttribute(SecurityAction.Demand, Authenticated=true)]

[C++] 
[PrincipalPermissionAttribute(SecurityAction::Demand, Authenticated=true)]

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Security.Permissions

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

PrincipalPermissionAttribute メンバ | System.Security.Permissions 名前空間 | 属性を使用したメタデータの拡張 | プリンシパル | PrincipalPermission