PrincipalPermission 构造函数

定义

初始化 PrincipalPermission 类的新实例。

重载

PrincipalPermission(PermissionState)

使用指定的 PrincipalPermission 初始化 PermissionState 类的新实例。

PrincipalPermission(String, String)

为指定的 namerole 初始化 PrincipalPermission 类的新实例。

PrincipalPermission(String, String, Boolean)

为指定的 namerole 和身份验证状态初始化 PrincipalPermission 类的新实例。

PrincipalPermission(PermissionState)

使用指定的 PrincipalPermission 初始化 PermissionState 类的新实例。

public:
 PrincipalPermission(System::Security::Permissions::PermissionState state);
public PrincipalPermission (System.Security.Permissions.PermissionState state);
new System.Security.Permissions.PrincipalPermission : System.Security.Permissions.PermissionState -> System.Security.Permissions.PrincipalPermission
Public Sub New (state As PermissionState)

参数

state
PermissionState

PermissionState 值之一。

例外

state 参数不是有效的 PermissionState

注解

None 仅匹配未经身份验证的主体 (Name 为空字符串 ( "" ) , RoleAuthenticated false) 。 Unrestricted 匹配 (为) 的所有主体 Name null Role null

备注

包含此构造函数是为了与其他权限的设计保持一致,但在实践中并不有用。

适用于

PrincipalPermission(String, String)

为指定的 namerole 初始化 PrincipalPermission 类的新实例。

public:
 PrincipalPermission(System::String ^ name, System::String ^ role);
public PrincipalPermission (string name, string role);
new System.Security.Permissions.PrincipalPermission : string * string -> System.Security.Permissions.PrincipalPermission
Public Sub New (name As String, role As String)

参数

name
String

IPrincipal 对象的用户的名称。

role
String

IPrincipal 对象的用户的角色(例如,管理员)。

示例

下面的示例要求活动主体是管理员。 name参数为 null ,它允许任何管理员用户通过该需求。

注意 在 Windows Vista 中,用户帐户控制 (UAC) 确定用户的权限。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 要执行需要管理员身份的代码,必须首先将你的特权从标准用户提升至管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::Security::Policy;
using namespace System::Security::Principal;

int main(array<System::String ^> ^args)
{
    System::String^ null;
    AppDomain::CurrentDomain->SetPrincipalPolicy(PrincipalPolicy::WindowsPrincipal);
    PrincipalPermission^ principalPerm = gcnew PrincipalPermission(null, "Administrators" );
      principalPerm->Demand();
      Console::WriteLine("Demand succeeded");
    return 0;
}
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{

    public static void Main()
    {
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
        principalPerm.Demand();
        Console.WriteLine("Demand succeeded.");
    }
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal



Class SecurityPrincipalDemo


    Public Shared Sub Main()
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
        Dim principalPerm As New PrincipalPermission(Nothing, "Administrators")
        principalPerm.Demand()
        Console.WriteLine("Demand succeeded.")

    End Sub
End Class

注解

name role 此权限必须与参数和参数匹配,才能匹配活动的 IPrincipal 和关联的 IIdentity 。 设置 namenull 以检查角色中的任何用户。

适用于

PrincipalPermission(String, String, Boolean)

为指定的 namerole 和身份验证状态初始化 PrincipalPermission 类的新实例。

public:
 PrincipalPermission(System::String ^ name, System::String ^ role, bool isAuthenticated);
public PrincipalPermission (string name, string role, bool isAuthenticated);
new System.Security.Permissions.PrincipalPermission : string * string * bool -> System.Security.Permissions.PrincipalPermission
Public Sub New (name As String, role As String, isAuthenticated As Boolean)

参数

name
String

IPrincipal 对象的用户的名称。

role
String

IPrincipal 对象的用户的角色(例如,管理员)。

isAuthenticated
Boolean

true 表示用户已经过身份验证;否则为 false

注解

name role 此权限必须与参数和参数匹配,才能匹配活动的 IPrincipal 和关联的 IIdentity

适用于