Bagikan melalui


PrincipalPermissionAttribute(SecurityAction) Konstruktor

Definisi

Perhatian

PrincipalPermissionAttribute is not honored by the runtime and must not be used.

Menginisialisasi instans PrincipalPermissionAttribute baru kelas dengan yang ditentukan SecurityAction.

public:
 PrincipalPermissionAttribute(System::Security::Permissions::SecurityAction action);
[System.Obsolete("PrincipalPermissionAttribute is not honored by the runtime and must not be used.", true, DiagnosticId="SYSLIB0002", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public PrincipalPermissionAttribute (System.Security.Permissions.SecurityAction action);
public PrincipalPermissionAttribute (System.Security.Permissions.SecurityAction action);
[<System.Obsolete("PrincipalPermissionAttribute is not honored by the runtime and must not be used.", true, DiagnosticId="SYSLIB0002", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Security.Permissions.PrincipalPermissionAttribute : System.Security.Permissions.SecurityAction -> System.Security.Permissions.PrincipalPermissionAttribute
new System.Security.Permissions.PrincipalPermissionAttribute : System.Security.Permissions.SecurityAction -> System.Security.Permissions.PrincipalPermissionAttribute
Public Sub New (action As SecurityAction)

Parameter

action
SecurityAction

Salah SecurityAction satu nilai.

Atribut

Contoh

Contoh berikut menunjukkan cara menggunakan PrincipalPermissionAttribute konstruktor untuk menuntut pengguna saat ini menjadi administrator.

Catatan

Di Windows Vista, Kontrol Akun Pengguna (UAC) menentukan hak istimewa pengguna. Jika Anda adalah anggota grup Administrator Bawaan, Anda diberi dua token akses run-time: token akses pengguna standar dan token akses administrator. Secara default, Anda berada dalam peran pengguna standar. Untuk menjalankan kode yang mengharuskan Anda menjadi administrator, Anda harus terlebih dahulu meningkatkan hak istimewa Anda dari pengguna standar menjadi administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

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

[PrincipalPermission(SecurityAction::Demand, Role = "Administrators")]
void CheckAdministrator()
{
    Console::WriteLine("User is an administrator.");
}
int main(array<System::String ^> ^args)
{
    try
    {
        // Must set PrincipalPolicy to WindowsPrincipal
        AppDomain::CurrentDomain->SetPrincipalPolicy(PrincipalPolicy::WindowsPrincipal);
        // Check using declarative security.
        CheckAdministrator();
        // Check using Imperative security.
        System::String^ null;
        PrincipalPermission^ principalPerm = gcnew PrincipalPermission(null, "Administrators" );
        principalPerm->Demand();
        Console::WriteLine("Demand succeeded");
    }
    catch (Exception ^e)
    {
        Console::WriteLine(e->Message);
    }
    return 0;
}
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{
    public static void Main()
    {
        try
        {
            // PrincipalPolicy must be set to WindowsPrincipal to check roles.
            AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
            // Check using the PrincipalPermissionAttribute
            CheckAdministrator();
            // Check using PrincipalPermission class.
            PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
            principalPerm.Demand();
            Console.WriteLine("Demand succeeded.");
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
    [PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
    static void CheckAdministrator()
    {
        Console.WriteLine("User is an administrator");
    }
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal



Class SecurityPrincipalDemo

    Public Shared Sub Main()
        Try
            ' PrincipalPolicy must be set to WindowsPrincipal to check roles.
            AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
            ' Check using the PrincipalPermissionAttribute
            CheckAdministrator()
            ' Check using PrincipalPermission class.
            Dim principalPerm As New PrincipalPermission(Nothing, "Administrators")
            principalPerm.Demand()
            Console.WriteLine("Demand succeeded.")
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

    <PrincipalPermission(SecurityAction.Demand, Role:="Administrators")> _
    Shared Sub CheckAdministrator()
        Console.WriteLine("User is an administrator")

    End Sub
End Class

Keterangan

Demand, InheritanceDemand, dan LinkDemand adalah satu-satunya SecurityAction nilai yang memiliki arti untuk atribut ini. Tindakan lain tidak berlaku untuk izin yang bukan izin akses kode.

Berlaku untuk