Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET 9-től kezdődően elavultak azok a X509CertificateX509Certificate2 konstruktorok, amelyek tartalmat fogadnak el , byte[]vagy ReadOnlySpan<byte> fájlelérési útvonalkéntstring. Az Import X509Certificate2Collection metódusai szintén elavultak. A kódban való meghívás figyelmeztetést SYSLIB0057 generál fordításkor.
A kényszer okának oka
Az érintett API-k több formátumban is támogatták a tanúsítványok betöltését. Például new X509Certificate2(data) betöltött egy tanúsítványt egy byte[] hívott datarendszerből.
data bármilyen támogatott formátum lehet, például X.509, PKCS7 vagy PKCS12/PFX.
Bár ez a módszer könnyen használható volt, problémákat hozott létre, amikor a felhasználó által megadott adatokat a tervezettnél eltérő formátumban adták át. Ez lehetővé teheti a PKCS12 betöltését, ahol csak az X.509-tartalom tölthető be. Vagy interoperabilitási problémákat is eredményezhet az adatok különböző módon történő kezelése során.
Áthidaló megoldás
A tanúsítványtartalom betöltéséhez használjon másik API-t a kívánt tartalomtípustól függően.
Az X.509- vagy PKCS12-tartalom betöltéséhez egy új, úgynevezett X509CertificateLoader osztály használható:
- Ha X.509-tartalmat tölt be, használja
X509CertificateLoader.LoadCertificatevagyX509CertificateLoader.LoadCertificateFromFile. - Ha PKCS12-tartalmat tölt be, használja
X509CertificateLoader.LoadPkcs12a ,X509CertificateLoader.LoadPkcs12FromFilevagyX509CertificateLoader.LoadPkcs12CollectionX509CertificateLoader.LoadPkcs12CollectionFromFile. - Ha PKCS7-tartalmat tölt be, SignedCms használja a System.Security.Cryptography.Pkcs csomagból a tanúsítványok PKCS7-tartalomban való vizsgálatához.
- Ha bizonytalan a betöltendő tartalomtípussal kapcsolatban, határozza GetCertContentType meg a tartalomtípust, és hívja meg a megfelelő API-t.
A Microsoft.Bcl.Cryptography csomag .NET-keretrendszer és .NET Standard csomagokat biztosítX509CertificateLoader.
Figyelmeztetés mellőzése
Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.
// Disable the warning.
#pragma warning disable SYSLIB0057
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0057
Ha el szeretné tiltani a SYSLIB0057 projekt összes figyelmeztetését, adjon hozzá egy tulajdonságot <NoWarn> a projektfájlhoz.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0057</NoWarn>
</PropertyGroup>
</Project>
További információ: Figyelmeztetések mellőzése.