Aracılığıyla paylaş


SuppressUnmanagedCodeSecurityAttribute Sınıf

Tanım

Yönetilen kodun yığın izlemesi olmadan yönetilmeyen koda çağrı yapmasına izin verir. Bu sınıf devralınamaz.

public ref class SuppressUnmanagedCodeSecurityAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
public sealed class SuppressUnmanagedCodeSecurityAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
public sealed class SuppressUnmanagedCodeSecurityAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class SuppressUnmanagedCodeSecurityAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
type SuppressUnmanagedCodeSecurityAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
type SuppressUnmanagedCodeSecurityAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SuppressUnmanagedCodeSecurityAttribute = class
    inherit Attribute
Public NotInheritable Class SuppressUnmanagedCodeSecurityAttribute
Inherits Attribute
Devralma
SuppressUnmanagedCodeSecurityAttribute
Öznitelikler

Açıklamalar

Önemli

Kısmen güvenilen kod artık desteklenmiyor. Bu özniteliğin .NET Core'da hiçbir etkisi yoktur.

Dikkat

Bu özniteliği aşırı dikkatli kullanın. Yanlış kullanım güvenlik zayıflıkları oluşturabilir.

Bu öznitelik, bunu yaparken bir çalışma zamanı güvenlik denetiminin performans kaybına neden olmadan yerel koda çağrı yapmak isteyen yöntemlere uygulanabilir. Yönetilmeyen kod çağrılırken gerçekleştirilen yığın kılavuzu çalışma zamanında atlanır ve bu da önemli performans tasarrufları sağlar. Bu özniteliğin bir sınıfta kullanılması, bunu tüm kapsanan yöntemlere uygular.

Genellikle, yönetilen kod yönetilmeyen koda (PInvoke veya COM ile yerel kodda birlikte çalışabilir) her çağrıda, tüm çağıranların buna izin vermek için gerekli izne sahip olduğundan emin olmak için UnmanagedCode bir izin talebi vardır. Geliştiriciler bu açık özniteliği uygulayarak çalışma zamanında talebi bastırabilir. Geliştirici, yönetilmeyen koda geçişin başka yollarla yeterince korunduğundan emin olma sorumluluğunu üstlenmelidir. İzin talebi UnmanagedCode yine de bağlantı zamanında gerçekleşir. Örneğin, A işlevi B işlevini çağırırsa ve B işlevi ile SuppressUnmanagedCodeSecurityAttributeişaretlenirse, A işlevi tam zamanında derleme sırasında yönetilmeyen kod izni için denetlenecektir, ancak daha sonra çalışma zamanında denetlenmeyecektir.

Bu öznitelik yalnızca PInvoke yöntemlerine (veya PInvoke yöntemlerini içeren sınıflara) veya birlikte çalışma çağrılarının yapılacağı arabirimin tanımına uygulandığında etkilidir. Diğer tüm bağlamlarda yoksayılır.

Bu öznitelik, yönetilmeyen kod aracılığıyla sistem kaynaklarına erişim sağlayan bir sınıf uygulamak için kullanışlıdır. Yönetilmeyen koda erişim izni olmayan kod, yönetilmeyen koda erişmek için bu özniteliği olan bir sınıfı çağırabilir. Bu, yalnızca bu özniteliğe sahip sınıfın yazarı sınıfı güvenli olacak şekilde programladıysa güvenlidir. Aksi takdirde, bu öznitelik tehlikelidir ve bunu kullanan kodun kötüye kullanılmasına izin verebilir.

Bu bildirim temelli bir güvenlik özniteliği değil, normal bir özniteliktir (türetilir Attribute, değil SecurityAttribute).

Oluşturucular

SuppressUnmanagedCodeSecurityAttribute()

SuppressUnmanagedCodeSecurityAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

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

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

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

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

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

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

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.