ResourcePermissionBase 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.
Kod erişimi güvenlik izinlerinin denetimine izin verir.
public ref class ResourcePermissionBase abstract : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
public abstract class ResourcePermissionBase : System.Security.CodeAccessPermission, 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 abstract class ResourcePermissionBase : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public abstract class ResourcePermissionBase : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type ResourcePermissionBase = class
inherit CodeAccessPermission
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 ResourcePermissionBase = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
[<System.Serializable>]
type ResourcePermissionBase = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
Public MustInherit Class ResourcePermissionBase
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
- Devralma
- Türetilmiş
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki örnek sınıfından devralınır ResourcePermissionBase . 4 tür oluşturucu uygulanır. Örnek ayrıca adlı MailslotPermissionEntry
bir sınıfın uygulamasını sağlar. Özelliği PermissionAccessType daha sonra türüne MailslotPermissionEntry
özel olarak ayarlanır. TagNames özelliği özel olarak "Ad" ve "Makine" olarak ayarlanır.
#using <System.dll>
using namespace System;
using namespace System::Security::Permissions;
using namespace System::Collections;
[Flags]
public enum class MailslotPermissionAccess
{
None = 0,
Send = 1 << 1,
Receive = 1 << 2 | MailslotPermissionAccess::Send
};
[Serializable]
public ref class MailslotPermissionEntry
{
private:
String^ name;
String^ machineName;
MailslotPermissionAccess permissionAccess;
internal:
MailslotPermissionEntry( ResourcePermissionBaseEntry^ baseEntry )
{
this->permissionAccess = (MailslotPermissionAccess)baseEntry->PermissionAccess;
this->name = baseEntry->PermissionAccessPath[ 0 ]->ToString();
this->machineName = baseEntry->PermissionAccessPath[ 1 ]->ToString();
}
ResourcePermissionBaseEntry^ GetBaseEntry()
{
array<String^>^newStrings = {this->Name,this->MachineName};
ResourcePermissionBaseEntry^ baseEntry = gcnew ResourcePermissionBaseEntry( (int)(this->PermissionAccess),newStrings );
return baseEntry;
}
public:
MailslotPermissionEntry( MailslotPermissionAccess permissionAccess, String^ name, String^ machineName )
{
this->permissionAccess = permissionAccess;
this->name = name;
this->machineName = machineName;
}
property String^ Name
{
String^ get()
{
return this->name;
}
}
property String^ MachineName
{
String^ get()
{
return this->machineName;
}
}
property MailslotPermissionAccess PermissionAccess
{
MailslotPermissionAccess get()
{
return this->permissionAccess;
}
}
};
[Serializable]
public ref class MailslotPermission: public ResourcePermissionBase
{
private:
ArrayList^ innerCollection;
void SetNames()
{
this->PermissionAccessType = MailslotPermissionAccess::typeid;
array<String^>^newStrings = {"Name","Machine"};
this->TagNames = newStrings;
}
internal:
void AddPermissionAccess( MailslotPermissionEntry^ entry )
{
ResourcePermissionBase::AddPermissionAccess( entry->GetBaseEntry() );
}
void Clear()
{
ResourcePermissionBase::Clear();
}
void RemovePermissionAccess( MailslotPermissionEntry^ entry )
{
ResourcePermissionBase::RemovePermissionAccess( entry->GetBaseEntry() );
}
public:
MailslotPermission()
{
SetNames();
}
MailslotPermission( PermissionState state )
: ResourcePermissionBase( state )
{
SetNames();
}
MailslotPermission( MailslotPermissionAccess permissionAccess, String^ name, String^ machineName )
{
SetNames();
this->AddPermissionAccess( gcnew MailslotPermissionEntry( permissionAccess,name,machineName ) );
}
MailslotPermission( array<MailslotPermissionEntry^>^permissionAccessEntries )
{
SetNames();
if ( permissionAccessEntries == nullptr )
throw gcnew ArgumentNullException( "permissionAccessEntries" );
for ( int index = 0; index < permissionAccessEntries->Length; ++index )
this->AddPermissionAccess( permissionAccessEntries[ index ] );
}
property ArrayList^ PermissionEntries
{
ArrayList^ get()
{
if ( this->innerCollection == nullptr )
this->innerCollection = gcnew ArrayList;
this->innerCollection->InsertRange( 0, safe_cast<ICollection^>(ResourcePermissionBase::GetPermissionEntries()) );
return this->innerCollection;
}
}
};
using System;
using System.Security.Permissions;
using System.Collections;
[Serializable()]
public class MailslotPermission: ResourcePermissionBase
{
private ArrayList innerCollection;
public MailslotPermission()
{
SetNames();
}
public MailslotPermission(PermissionState state):base(state)
{
SetNames();
}
public MailslotPermission(MailslotPermissionAccess permissionAccess, string name, string machineName)
{
SetNames();
this.AddPermissionAccess(new MailslotPermissionEntry(permissionAccess, name, machineName));
}
public MailslotPermission(MailslotPermissionEntry[] permissionAccessEntries)
{
SetNames();
if (permissionAccessEntries == null)
throw new ArgumentNullException("permissionAccessEntries");
for (int index = 0; index < permissionAccessEntries.Length; ++index)
this.AddPermissionAccess(permissionAccessEntries[index]);
}
public ArrayList PermissionEntries
{
get
{
if (this.innerCollection == null)
this.innerCollection = new ArrayList();
this.innerCollection.InsertRange(0,base.GetPermissionEntries());
return this.innerCollection;
}
}
internal void AddPermissionAccess(MailslotPermissionEntry entry)
{
base.AddPermissionAccess(entry.GetBaseEntry());
}
internal new void Clear()
{
base.Clear();
}
internal void RemovePermissionAccess(MailslotPermissionEntry entry)
{
base.RemovePermissionAccess(entry.GetBaseEntry());
}
private void SetNames()
{
this.PermissionAccessType = typeof(MailslotPermissionAccess);
this.TagNames = new string[]{"Name","Machine"};
}
}
[Flags]
public enum MailslotPermissionAccess
{
None = 0,
Send = 1 << 1,
Receive = 1 << 2 | Send,
}
[Serializable()]
public class MailslotPermissionEntry
{
private string name;
private string machineName;
private MailslotPermissionAccess permissionAccess;
public MailslotPermissionEntry(MailslotPermissionAccess permissionAccess, string name, string machineName)
{
this.permissionAccess = permissionAccess;
this.name = name;
this.machineName = machineName;
}
internal MailslotPermissionEntry(ResourcePermissionBaseEntry baseEntry)
{
this.permissionAccess = (MailslotPermissionAccess)baseEntry.PermissionAccess;
this.name = baseEntry.PermissionAccessPath[0];
this.machineName = baseEntry.PermissionAccessPath[1];
}
public string Name
{
get
{
return this.name;
}
}
public string MachineName
{
get
{
return this.machineName;
}
}
public MailslotPermissionAccess PermissionAccess
{
get
{
return this.permissionAccess;
}
}
internal ResourcePermissionBaseEntry GetBaseEntry()
{
ResourcePermissionBaseEntry baseEntry = new ResourcePermissionBaseEntry((int)this.PermissionAccess, new string[] {this.Name,this.MachineName});
return baseEntry;
}
}
Imports System.Security.Permissions
Imports System.Collections
<Serializable()> Public Class MailslotPermission
Inherits ResourcePermissionBase
Private innerCollection As ArrayList
Public Sub New()
SetNames()
End Sub
Public Sub New(ByVal state As PermissionState)
MyBase.New(state)
SetNames()
End Sub
Public Sub New(ByVal permissionAccess As MailslotPermissionAccess, ByVal name As String, ByVal machineName1 As String)
SetNames()
Me.AddPermissionAccess(New MailslotPermissionEntry(permissionAccess, name, machineName1))
End Sub
Public Sub New(ByVal permissionAccessEntries() As MailslotPermissionEntry)
SetNames()
If permissionAccessEntries Is Nothing Then
Throw New ArgumentNullException("permissionAccessEntries")
End If
Dim index As Integer
While index < permissionAccessEntries.Length
Me.AddPermissionAccess(permissionAccessEntries(index))
End While
End Sub
Public ReadOnly Property PermissionEntries() As ArrayList
Get
If Me.innerCollection Is Nothing Then
Me.innerCollection = New ArrayList()
End If
Me.innerCollection.InsertRange(0, MyBase.GetPermissionEntries())
Return Me.innerCollection
End Get
End Property
Friend Overloads Sub AddPermissionAccess(ByVal entry As MailslotPermissionEntry)
MyBase.AddPermissionAccess(entry.GetBaseEntry())
End Sub
Friend Shadows Sub Clear()
MyBase.Clear()
End Sub
Friend Overloads Sub RemovePermissionAccess(ByVal entry As MailslotPermissionEntry)
MyBase.RemovePermissionAccess(entry.GetBaseEntry())
End Sub
Private Sub SetNames()
Me.PermissionAccessType = GetType(MailslotPermissionAccess)
Me.TagNames = New String() {"Name", "Machine"}
End Sub
End Class
<Flags()> Public Enum MailslotPermissionAccess
None = 0
Send = 2
Receive = 4 Or Send
End Enum 'MailslotPermissionAccess
<Serializable()> Public Class MailslotPermissionEntry
Private nameVar As String
Private machineNameVar As String
Private permissionAccessVar As MailslotPermissionAccess
Public Sub New(ByVal permissionAccess As MailslotPermissionAccess, ByVal name As String, ByVal machineName1 As String)
Me.permissionAccessVar = permissionAccess
Me.nameVar = name
Me.machineNameVar = machineName1
End Sub
Friend Sub New(ByVal baseEntry As ResourcePermissionBaseEntry)
Me.permissionAccessVar = CType(baseEntry.PermissionAccess, MailslotPermissionAccess)
Me.nameVar = baseEntry.PermissionAccessPath(0)
Me.machineNameVar = baseEntry.PermissionAccessPath(1)
End Sub
Public ReadOnly Property Name() As String
Get
Return Me.nameVar
End Get
End Property
Public ReadOnly Property MachineName() As String
Get
Return Me.machineNameVar
End Get
End Property
Public ReadOnly Property PermissionAccess() As MailslotPermissionAccess
Get
Return Me.permissionAccessVar
End Get
End Property
Friend Function GetBaseEntry() As ResourcePermissionBaseEntry
Dim baseEntry As New ResourcePermissionBaseEntry(CInt(Me.PermissionAccess), New String() {Me.Name, Me.MachineName})
Return baseEntry
End Function 'GetBaseEntry
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.
Not
sınıfı sıralı ResourcePermissionBase sıralama kurallarını kullanarak dizeleri karşılaştırır ve karşılaştırılan dizelerin büyük/küçük harflerini yoksayar.
Uygulayanlara Notlar
'den ResourcePermissionBasedevraldığınızda en az üç oluşturucu sağlamanız, iki özellik ayarlamanız ve üçüncü bir özellik sağlamanız gerekir. Gerekli oluşturucular şunlardır: parametresiz bir oluşturucu, parametre olarak alan PermissionState bir oluşturucu ve özellikler için değer alan gerektiği kadar. Ayarlanması gereken özellikler ve TagNamesşeklindedirPermissionAccessType. Gereken üçüncü özellik, izin girdilerini döndüren özelliktir. Bu sınıfın bir uygulaması örneği için bkz PerformanceCounterPermission. . içinde PerformanceCounterPermissionTagNames özelliği özel olarak "Makine" ve "Kategori" olarak ayarlanır, PermissionAccessType özellik türüne PerformanceCounterPermissionAccessözel olarak ayarlanır ve PermissionEntries özellik izin girdilerini döndürür.
Oluşturucular
ResourcePermissionBase() |
ResourcePermissionBase sınıfının yeni bir örneğini başlatır. |
ResourcePermissionBase(PermissionState) |
Oluşturma sırasında kaynaklara ResourcePermissionBase belirtilen erişim düzeyiyle sınıfının yeni bir örneğini başlatır. |
Alanlar
Any |
Herhangi bir joker karakteri temsil etmek için kullanılacak karakteri belirtir. |
Local |
Yerel başvuruyu temsil etmek için kullanılacak karakteri belirtir. |
Özellikler
PermissionAccessType |
Kaynağa verdiğiniz erişim türlerini açıklayan bir numaralandırma değeri alır veya ayarlar. |
TagNames |
Koruduğun kaynağı tanımlayan dize dizisini alır veya ayarlar. |
Yöntemler
AddPermissionAccess(ResourcePermissionBaseEntry) |
İzine bir izin girdisi ekler. |
Assert() |
Yığında daha yüksek arayanlara kaynağa erişim izni verilmemiş olsa bile çağıran kodun bu yöntemi çağıran kod aracılığıyla bir izin talebiyle korunan kaynağa erişebileceğini bildirir. kullanmak Assert() güvenlik sorunları oluşturabilir. (Devralındığı yer: CodeAccessPermission) |
Clear() |
Eklenen izin girdilerinin iznini temizler. |
Copy() |
Geçerli izin nesnesinin özdeş bir kopyasını oluşturur ve döndürür. |
Demand() |
Çağrı yığınında daha yüksek olan tüm arayanlara geçerli örnek tarafından belirtilen izin verilmediyse, çalışma zamanında bir SecurityException zorlar. (Devralındığı yer: CodeAccessPermission) |
Deny() |
Kullanımdan kalktı.
Kullanımdan kalktı.
Çağrı yığınındaki daha yüksek çağıranların geçerli örnek tarafından belirtilen kaynağa erişmek için bu yöntemi çağıran kodu kullanmasını engeller. (Devralındığı yer: CodeAccessPermission) |
Equals(Object) |
Belirtilen CodeAccessPermission nesnenin geçerli CodeAccessPermissionöğesine eşit olup olmadığını belirler. (Devralındığı yer: CodeAccessPermission) |
FromXml(SecurityElement) |
Xml kodlamasından belirtilen duruma sahip bir güvenlik nesnesini yeniden oluşturur. |
GetHashCode() |
Karma algoritmalarda ve karma tablo gibi veri yapılarında kullanıma uygun nesne için CodeAccessPermission bir karma kodu alır. (Devralındığı yer: CodeAccessPermission) |
GetPermissionEntries() |
Bu izne ResourcePermissionBaseEntry eklenen nesnelerin dizisini döndürür. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
Intersect(IPermission) |
Geçerli izin nesnesinin ve hedef izin nesnesinin kesişimi olan bir izin nesnesi oluşturur ve döndürür. |
IsSubsetOf(IPermission) |
Geçerli izin nesnesinin belirtilen iznin bir alt kümesi olup olmadığını belirler. |
IsUnrestricted() |
İznin kısıtlanıp kısıtlanmadığını belirten bir değer alır. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
PermitOnly() |
Çağrı yığınında daha yüksek çağıranların geçerli örnek tarafından belirtilen kaynak dışında tüm kaynaklara erişmek için bu yöntemi çağıran kodu kullanmasını engeller. (Devralındığı yer: CodeAccessPermission) |
RemovePermissionAccess(ResourcePermissionBaseEntry) |
İzin girdisini izinden kaldırır. |
ToString() |
Geçerli izin nesnesinin dize gösterimini oluşturur ve döndürür. (Devralındığı yer: CodeAccessPermission) |
ToXml() |
Güvenlik nesnesinin ve geçerli durumunun XML kodlamasını oluşturur ve döndürür. |
Union(IPermission) |
Geçerli izin nesnesini ve hedef izin nesnesini birleştiren bir izin nesnesi oluşturur. |