Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
yöntemi System.Xml.XmlSecureResolver.GetEntity(Uri, String, Type) çalışma zamanında koşulsuz olarak bir XmlException fırlatır. Uygulamanız XmlSecureResolver kullanıyorsa ve bir XML kaynağını çözümlemeye çalışırsanız, çözümleme girişimi bir özel durumla başarısız olur.
Ayrıca, türün tamamı System.Xml.XmlSecureResolver eskidir. Bu türe yapılan tüm başvurular derleme zamanında SYSLIB0047 uyarısına yol açar. Uyarıları hata olarak etkinleştirdiyseniz, uygulamanız XmlSecureResolver'ye referans verirse bu, bir derleme kesmesine neden olur.
using System.Xml;
// Compiler warning SYSLIB0047: XmlSecureResolver type is obsolete.
XmlResolver resolver = new XmlSecureResolver(
resolver: new XmlUrlResolver(),
securityUrl: "https://www.example.com/");
// Call to XmlSecureResolver.GetEntity below throws XmlException at runtime.
object entity = resolver.GetEntity(
absoluteUri: new Uri("https://www.example.com/some-entity"),
role: null,
ofObjectToReturn: null);
Önceki davranış
.NET Framework'te, XmlSecureResolver.GetEntity(Uri, String, Type) dış XML kaynak çözümleme işlemini kısıtlamak için bir Kod Erişim Güvenliği (CAS) korumalı alanı oluşturur. İlke ihlal edilirse, bir SecurityException atılır.
.NET Core 3.1 ve .NET 6'da dış XmlSecureResolver.GetEntity(Uri, String, Type) XML kaynak çözümlemesini hiç kısıtlamaz. Dış kaynak çözümlemesine hiçbir sınırlama olmadan devam etme izni verilir.
Yeni davranış
.NET 7'den başlayarak, XmlSecureResolver.GetEntity(Uri, String, Type) koşulsuz olarak bir XmlException fırlatır. Cas korumalı alanı oluşturmaz ve dış kaynağı çözümlemeye çalışmaz.
Sürüm kullanıma sunulmuştur
.NET 7
Kesinti yaratan değişiklik türü
Bu değişiklik kaynak uyumluluğunu ve ikili uyumluluğu etkileyebilir.
Değişiklik nedeni
Bu değişiklik .NET ekosisteminin güvenliğini artırır. Bu kullanımdan kaldırma işlemi, .NET 7 veya daha yeni bir sürümde çalışırken, XmlSecureResolver davranışını hata-tehlikeli (her zaman çözümleme gerçekleştirir) durumundan hata-güvenli (hiçbir zaman çözümleme gerçekleştirmez) durumuna taşır.
Önerilen eylem
Bunun yerine yeni tanıtılan statik özelliğini XmlResolver.ThrowingResolverkullanmayı düşünün. Bu özellik, dış kaynak çözümlemesini yasaklayan bir XmlResolver örnek sağlar.
using System.Xml;
// BAD: Do not use XmlSecureResolver.
// XmlResolver resolver = new XmlSecureResolver(
// resolver: new XmlUrlResolver(),
// securityUrl: "https://www.example.com/");
// GOOD: Use XmlResolver.ThrowingResolver instead.
XmlResolver resolver = XmlResolver.ThrowingResolver;