TypeBuilder.IsSecuritySafeCritical Özellik
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.
Geçerli türün güvenlik açısından güvenli-kritik olup olmadığını belirten bir değer alır; yani, kritik işlemler gerçekleştirip gerçekleştiremeyeceği ve saydam kod tarafından erişilip erişilemeyeceği.
public:
virtual property bool IsSecuritySafeCritical { bool get(); };
public override bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overrides ReadOnly Property IsSecuritySafeCritical As Boolean
Özellik Değeri
true
geçerli tür güvenlik açısından güvenli-kritikse; false
güvenlik açısından kritik veya saydamsa.
Özel durumlar
Geçerli dinamik tür, yöntemi çağrılarak CreateType() oluşturulmadı.
Açıklamalar
IsSecurityCritical, IsSecuritySafeCriticalve IsSecurityTransparent özellikleri, ortak dil çalışma zamanı (CLR) tarafından belirlenen türün saydamlık düzeyini bildirir. Bu özelliklerin birleşimleri aşağıdaki tabloda gösterilmiştir:
Güvenlik düzeyi | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
Kritik | true |
false |
false |
Güvenli kritik | true |
true |
false |
Geçirgen | false |
false |
true |
Bu özelliklerin kullanılması, derlemenin ve türlerinin güvenlik ek açıklamalarını incelemekten, geçerli güven düzeyini denetlemekten ve çalışma zamanının kurallarını yinelemeye çalışmaktan çok daha basittir.
Çalışma zamanı, derlemedeki saydamlık düzeylerini değerlendirmeye başlar. Örneğin, dinamik derleme güvenlik açısından kritikse, türlerdeki ek açıklamalar yoksayılır ve tüm türler güvenlik açısından kritiktir.
Varsayılan olarak, dinamik derleme bunu yayan derlemenin saydamlığını devralır. , AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)veya AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) yöntemi aşırı yüklemesini AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)kullanarak ve güvenlik özniteliklerini belirterek bu varsayılanı geçersiz kılabilirsiniz. Bunu yaparak güvenlik düzeylerini yükseltemezsiniz; diğer bir ifadeyle saydam kod güvenlik açısından kritik veya güvenlik açısından güvenli-kritik kod yayamaz. Öznitelikler dinamik derleme oluşturulduğunda belirtilmelidir veya derleme diske kaydedilip yeniden yüklenene kadar etkili olmaz.
Not
Varsayılan devralma, çalışma zamanının saydamlık değerlendirmesiyle sınırlıdır. Dinamik derlemeye hiçbir öznitelik uygulanmaz. Güvenlik öznitelikleri eklemek istiyorsanız, bunları kendiniz uygulamanız gerekir.
Yansıma yayma ve saydamlık hakkında daha fazla bilgi için bkz. Yansıma Yayma'da Güvenlik Sorunları. Saydamlık hakkında bilgi için bkz . Güvenlik Değişiklikleri.
Şunlara uygulanır
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin