PrincipalPermission Sınıf

Tanım

Dikkat

Code Access Security is not supported or honored by the runtime.

Hem bildirim temelli hem de kesinlik temelli güvenlik eylemleri için tanımlanan dil yapılarını kullanarak etkin sorumluya (bkz IPrincipal. ) karşı denetimlere izin verir. Bu sınıf devralınamaz.

public ref class PrincipalPermission sealed : System::Security::IPermission, System::Security::Permissions::IUnrestrictedPermission
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
[<System.Serializable>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
Devralma
PrincipalPermission
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, etkin sorumlunun yönetici olmasını gerektirir. name parametresi, nullyönetici olan tüm kullanıcıların talebi geçirmesini sağlayan parametresidir.

Not

Windows Vista'da Kullanıcı Hesabı Denetimi (UAC), bir kullanıcının ayrıcalıklarını belirler. Yerleşik Yöneticiler grubunun bir üyesi iseniz, size iki çalışma zamanı erişim belirteci atanır: Standart kullanıcı erişim belirteci ve yönetici erişim belirteci. Varsayılan olarak, standart kullanıcı rolünde olursunuz. Yönetici olmanız gereken kodu yürütmek için öncelikle ayrıcalıklarınızı standart kullanıcıdan yöneticiye yükseltmeniz gerekir. Bir uygulamayı başlattığınızda, uygulama simgesine sağ tıklayıp yönetici olarak çalıştırmak istediğinizi belirterek bunu yapabilirsiniz.

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

Açıklamalar

Oluşturucuya kimlik bilgileri (kullanıcı adı ve rol) geçirilerek, PrincipalPermission etkin sorumlunun kimliğinin bu bilgilerle eşleşmesini talep etmek için kullanılabilir.

Etkin IPrincipal ve ilişkili IIdentityile eşleşmesi için hem belirtilen kimliğin hem de rolün eşleşmesi gerekir. Kimlik dizesi kullanılırsa null , herhangi bir kimlikle eşleşme isteği olarak yorumlanır. Rol dizesinin null kullanımı herhangi bir rolle eşleşecektir. Bunun anlamı, veya role parametresinin name PrincipalPermission geçirilmesi null herhangi bir IPrincipaliçindeki kimlik ve rollerle eşleşecektir. Yalnızca öğesinin kimliği doğrulanmış veya kimliği doğrulanmamış bir varlığı temsil edip IIdentity etmediğini belirleyen bir de oluşturmak PrincipalPermission mümkündür. Bu durumda ve name role yoksayılır.

Diğer izinlerin çoğundan farklı olarak genişletilmez PrincipalPermission CodeAccessPermission. Ancak arabirimini IPermission uygular. Bunun nedeni PrincipalPermission kod erişim izni olmamasıdır; başka bir ifadeyle, yürütülen derlemenin kimliğine göre verilmemesidir. Bunun yerine, kodun geçerli kullanıcı kimliğine yönelik eylemleri (Demand, Union, Intersect, vb.) kod erişimi ve kod kimliği izinleri için gerçekleştirilen eylemlerle tutarlı bir şekilde gerçekleştirmesine olanak tanır.

Önemli

Asıl izin talebinden önce, geçerli uygulama etki alanının asıl ilkesini numaralandırma değerine WindowsPrincipalayarlamak gerekir. Varsayılan olarak, asıl ilke olarak UnauthenticatedPrincipalayarlanır. Asıl ilkeyi olarak WindowsPrincipalayarlamazsanız, asıl izin talebi başarısız olur. Asıl izin talep edilmeden önce aşağıdaki kod yürütülmelidir:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

Oluşturucular

PrincipalPermission(PermissionState)

belirtilen PermissionStateile sınıfının yeni bir örneğini PrincipalPermission başlatır.

PrincipalPermission(String, String)

Belirtilen name ve roleiçin sınıfının yeni bir örneğini PrincipalPermission başlatır.

PrincipalPermission(String, String, Boolean)

Belirtilen name, roleve kimlik doğrulama durumu için sınıfının yeni bir örneğini PrincipalPermission başlatır.

Yöntemler

Copy()

Geçerli iznin özdeş bir kopyasını oluşturur ve döndürür.

Demand()

Çalışma zamanında geçerli sorumlunun geçerli izin tarafından belirtilen sorumluyla eşleşip eşleşmediğini belirler.

Equals(Object)

Belirtilen PrincipalPermission nesnenin geçerli PrincipalPermissionöğesine eşit olup olmadığını belirler.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
FromXml(SecurityElement)

Xml kodlamasından belirtilen duruma sahip bir izni yeniden oluşturur.

GetHashCode()

Karma algoritmalarında ve karma tablosu gibi veri yapılarında kullanıma uygun nesne için PrincipalPermission karma kodu alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Intersect(IPermission)

Geçerli iznin ve belirtilen iznin kesişimi olan bir izin oluşturur ve döndürür.

IsSubsetOf(IPermission)

Geçerli iznin belirtilen iznin bir alt kümesi olup olmadığını belirler.

IsUnrestricted()

Geçerli iznin kısıtlanmamış olup olmadığını gösteren bir değer döndürür.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli izni temsil eden bir dize oluşturur ve döndürür.

ToXml()

İznin ve geçerli durumunun XML kodlamasını oluşturur.

Union(IPermission)

Geçerli iznin ve belirtilen iznin birleşimi olan bir izin oluşturur.

Şunlara uygulanır

Ayrıca bkz.