Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Konstruktory pro X509Certificate a X509Certificate2 které přijímají obsah jako byte[], ReadOnlySpan<byte>nebo string cestu k souboru jsou zastaralé, počínaje rozhraním .NET 9. Metody Import x509Certificate2Collection jsou také zastaralé. Volání v kódu generuje upozornění SYSLIB0057 v době kompilace.
Důvod obsoletion
Ovlivněná rozhraní API podporovala načítání certifikátů ve více formátech. Například new X509Certificate2(data) načetl certifikát z volané byte[].data
data může být jedním z podporovaných formátů, včetně X.509, PKCS7 nebo PKCS12/PFX.
I když se tato metoda snadno používala, vytvářela problémy, kdy byla data zadaná uživatelem předána s jiným formátem, než je zamýšleno. To může umožnit načtení PKCS12, kde byl načten pouze obsah X.509. Nebo může způsobovat problémy s interoperabilitou při zpracování dat různými způsoby.
Alternativní řešení
Pomocí jiného rozhraní API načtěte obsah certifikátu v závislosti na zamýšleném typu obsahu.
K načtení obsahu X.509 nebo PKCS12 lze použít novou třídu s názvem X509CertificateLoader :
- Pokud načítáte obsah X.509, použijte
X509CertificateLoader.LoadCertificateneboX509CertificateLoader.LoadCertificateFromFile. - Pokud načítáte obsah PKCS12, použijte
X509CertificateLoader.LoadPkcs12,X509CertificateLoader.LoadPkcs12FromFile,X509CertificateLoader.LoadPkcs12CollectionneboX509CertificateLoader.LoadPkcs12CollectionFromFile. - Pokud načítáte obsah PKCS7, použijte SignedCms z balíčku System.Security.Cryptography.Pkcs ke kontrole certifikátů v obsahu PKCS7.
- Pokud si nejste jistí, který typ obsahu načítáte, použijte GetCertContentType k určení typu obsahu a volání příslušného rozhraní API.
Balíček Microsoft.Bcl.Cryptography poskytuje X509CertificateLoader rozhraní .NET Framework a .NET Standard.
Potlačení upozornění
Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.
Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.
// Disable the warning.
#pragma warning disable SYSLIB0057
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0057
Pokud chcete potlačit všechna SYSLIB0057 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0057</NoWarn>
</PropertyGroup>
</Project>
Další informace naleznete v tématu Potlačení upozornění.