SYSLIB0021: I tipi crittografici derivati sono obsoleti
I tipi di crittografia derivati seguenti sono contrassegnati come obsoleti, a partire da .NET 6. Il loro uso nel codice genera un avviso SYSLIB0021
in fase di compilazione.
- System.Security.Cryptography.AesCryptoServiceProvider
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.DESCryptoServiceProvider
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.SHA1CryptoServiceProvider
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
- System.Security.Cryptography.SHA256CryptoServiceProvider
- System.Security.Cryptography.SHA384Managed
- System.Security.Cryptography.SHA384CryptoServiceProvider
- System.Security.Cryptography.SHA512Managed
- System.Security.Cryptography.SHA512CryptoServiceProvider
- System.Security.Cryptography.TripleDESCryptoServiceProvider
Soluzioni alternative
Usare invece il metodo Create
sul tipo di base. Usare, ad esempio, TripleDES.Create invece di TripleDESCryptoServiceProvider.
Eliminare un avviso
Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.
Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.
// Disable the warning.
#pragma warning disable SYSLIB0021
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0021
Per eliminare tutti gli avvisi SYSLIB0021
nel progetto, aggiungere una proprietà <NoWarn>
al file di progetto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0021</NoWarn>
</PropertyGroup>
</Project>
Per altre informazioni, vedere Eliminare gli avvisi.