PrincipalPermission Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
[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
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}")>]
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
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, null
yö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
Dikkat
Kod Erişim Güvenliği (CAS), .NET Framework ve .NET'in tüm sürümlerinde kullanım dışı bırakılmıştır. .NET'in son sürümleri CAS ek açıklamalarını dikkate almaz ve CAS ile ilgili API'ler kullanılıyorsa hata üretir. Geliştiriciler, güvenlik görevlerini yerine getirmek için alternatif yöntemler aramalıdır.
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 PrincipalPermissionCodeAccessPermission. 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 bağlı olarak 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 talebi öncesinde, 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) |
Geçersiz.
belirtilen PermissionStateile sınıfının yeni bir örneğini PrincipalPermission başlatır. |
PrincipalPermission(String, String) |
Geçersiz.
Belirtilen |
PrincipalPermission(String, String, Boolean) |
Geçersiz.
Belirtilen |
Yöntemler
Copy() |
Geçersiz.
Geçerli iznin özdeş bir kopyasını oluşturur ve döndürür. |
Demand() |
Geçersiz.
Çalışma zamanında geçerli sorumlunun geçerli izin tarafından belirtilen sorumluyla eşleşip eşleşmediğini belirler. |
Equals(Object) |
Geçersiz.
Belirtilen PrincipalPermission nesnenin geçerli PrincipalPermissionöğesine eşit olup olmadığını belirler. |
Equals(Object) |
Geçersiz.
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
FromXml(SecurityElement) |
Geçersiz.
Xml kodlamasından belirtilen duruma sahip bir izni yeniden oluşturur. |
GetHashCode() |
Geçersiz.
Karma algoritmalarında ve karma tablosu gibi veri yapılarında kullanıma uygun nesne için PrincipalPermission karma kodu alır. |
GetHashCode() |
Geçersiz.
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Geçersiz.
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
Intersect(IPermission) |
Geçersiz.
Geçerli iznin ve belirtilen iznin kesişimi olan bir izin oluşturur ve döndürür. |
IsSubsetOf(IPermission) |
Geçersiz.
Geçerli iznin belirtilen iznin bir alt kümesi olup olmadığını belirler. |
IsUnrestricted() |
Geçersiz.
Geçerli iznin kısıtlanmamış olup olmadığını gösteren bir değer döndürür. |
MemberwiseClone() |
Geçersiz.
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçersiz.
Geçerli izni temsil eden bir dize oluşturur ve döndürür. |
ToXml() |
Geçersiz.
İznin ve geçerli durumunun XML kodlamasını oluşturur. |
Union(IPermission) |
Geçersiz.
Geçerli iznin ve belirtilen iznin birleşimi olan bir izin oluşturur. |