Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De constructors op X509Certificate en X509Certificate2 die inhoud accepteren als een byte[], ReadOnlySpan<byte>of een string bestandspad zijn verouderd, te beginnen in .NET 9. De Import methoden op X509Certificate2Collection zijn ook verouderd. Als u deze in code aanroept, wordt er een waarschuwing SYSLIB0057 gegenereerd tijdens het compileren.
Reden voor verdoezeling
De betrokken API's ondersteunen het laden van certificaten in meerdere indelingen. Bijvoorbeeld, new X509Certificate2(data) een certificaat uit een byte[] aangeroepen .data
data kan een van de ondersteunde indelingen zijn, waaronder X.509, PKCS7 of PKCS12/PFX.
Hoewel deze methode eenvoudig te gebruiken was, zijn er problemen ontstaan waarbij door de gebruiker opgegeven gegevens werden doorgegeven met een andere indeling dan bedoeld. Hierdoor kan PKCS12 worden geladen, waarbij alleen X.509-inhoud is geladen. Of het kan interoperabiliteitsproblemen maken door de gegevens op verschillende manieren te verwerken.
Tijdelijke oplossing
Gebruik een andere API om certificaatinhoud te laden, afhankelijk van het beoogde inhoudstype.
Een nieuwe klasse die wordt aangeroepen X509CertificateLoader, kan worden gebruikt om X.509- of PKCS12-inhoud te laden:
- Als u X.509-inhoud laadt, gebruikt
X509CertificateLoader.LoadCertificateu ofX509CertificateLoader.LoadCertificateFromFile. - Als u PKCS12-inhoud laadt, gebruikt
X509CertificateLoader.LoadPkcs12,X509CertificateLoader.LoadPkcs12FromFileofX509CertificateLoader.LoadPkcs12CollectionX509CertificateLoader.LoadPkcs12CollectionFromFile. - Als u PKCS7-inhoud laadt, gebruikt SignedCms u het pakket System.Security.Cryptography.Pkcs om certificaten in PKCS7-inhoud te inspecteren.
- Als u niet zeker weet welk inhoudstype u laadt, kunt GetCertContentType u het inhoudstype bepalen en de juiste API aanroepen.
Het Microsoft.Bcl.Cryptography-pakket levert X509CertificateLoader .NET Framework en .NET Standard.
Een waarschuwing onderdrukken
Als u de verouderde API's moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.
// Disable the warning.
#pragma warning disable SYSLIB0057
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0057
Als u alle SYSLIB0057 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0057</NoWarn>
</PropertyGroup>
</Project>
Zie Waarschuwingen onderdrukken voor meer informatie.