Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Niektóre interfejsy API zostały oznaczone jako przestarzałe, począwszy od platformy .NET 7. Ta zmiana powodująca niezgodność jest specyficzna dla interfejsów API, które zostały oznaczone jako przestarzałe z niestandardowym identyfikatorem diagnostycznym. Ignorowanie domyślnego identyfikatora diagnostycznego przestarzałości, jakim jest CS0618 w kompilatorze C#, nie ignoruje ostrzeżeń generowanych przez kompilator podczas używania tych interfejsów API.
Zmień opis
W poprzednich wersjach platformy .NET te interfejsy API mogą być używane bez żadnego ostrzeżenia dotyczącego kompilacji. W wersjach .NET 7 i nowszych użycie tych API powoduje wygenerowanie ostrzeżenia w czasie kompilacji lub błędu z niestandardowym identyfikatorem diagnostycznym. Użycie niestandardowych identyfikatorów diagnostycznych umożliwia pomijanie ostrzeżeń dotyczących przestarzałości indywidualnie, zamiast pomijania wszystkich takich ostrzeżeń.
W poniższej tabeli wymieniono niestandardowe identyfikatory diagnostyczne i odpowiadające im komunikaty ostrzegawcze dla przestarzałych interfejsów API.
| Identyfikator diagnostyczny | Opis | Ciężkość |
|---|---|---|
| SYSLIB0036 |
Regex.CompileToAssembly jest przestarzały i nie jest obsługiwany. Zamiast tego należy używać RegexGeneratorAttribute z generatorem źródła wyrażeń regularnych. |
Ostrzeżenie |
| SYSLIB0037 | AssemblyName członkowie HashAlgorithm, ProcessorArchitecture, i VersionCompatibility są przestarzali i nie są obsługiwani. | Ostrzeżenie |
| SYSLIB0038 | SerializationFormat.Binary jest przestarzały i nie powinien być używany. | Ostrzeżenie |
| SYSLIB0039 | Protokoły TLS w wersji 1.0 i 1.1 mają znane luki w zabezpieczeniach i nie są zalecane. Zamiast tego użyj nowszej wersji protokołu TLS lub użyj polecenia SslProtocols.None , aby odroczyć wartości domyślne systemu operacyjnego. | Ostrzeżenie |
| SYSLIB0040 | EncryptionPolicy.NoEncryption i EncryptionPolicy.AllowNoEncryption znacznie zmniejszają bezpieczeństwo i nie należy ich używać w kodzie produkcyjnym. | Ostrzeżenie |
| SYSLIB0041 | Domyślny algorytm skrótu i liczba iteracji w Rfc2898DeriveBytes konstruktorach są nieaktualne i niezabezpieczone. Użyj konstruktora, który akceptuje algorytm skrótu i liczbę iteracji. | Ostrzeżenie |
| SYSLIB0042 |
ToXmlString i FromXmlString nie mają implementacji typów kryptograficznych krzywej eliptycznej (ECC) i są przestarzałe. Użyj standardowego formatu importu i eksportu, takiego jak ExportSubjectPublicKeyInfo lub ImportSubjectPublicKeyInfo dla kluczy publicznych oraz ExportPkcs8PrivateKey dla ImportPkcs8PrivateKey kluczy prywatnych. |
Ostrzeżenie |
| SYSLIB0043 | ECDiffieHellmanPublicKey.ToByteArray() i powiązany konstruktor nie ma spójnej i współdziałającej implementacji na wszystkich platformach. Użyj ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() zamiast tego. | Ostrzeżenie |
| SYSLIB0044 | AssemblyName.CodeBase i AssemblyName.EscapedCodeBase są przestarzałe. | Ostrzeżenie |
| SYSLIB0045 | Metody fabryczne kryptograficzne akceptujące nazwę algorytmu są przestarzałe. Zamiast tego użyj metody fabryki bezparametrowej Create na typie algorytmu. |
Ostrzeżenie |
| SYSLIB0047 |
XmlSecureResolver jest przestarzałe. Użyj XmlResolver.ThrowingResolver zamiast, aby zabronić rozpoznawania zewnętrznych zasobów XML. |
Ostrzeżenie |
Wersja wprowadzona
.NET 7
Typ zmiany przełamującej
Te przestarzałości mogą mieć wpływ na zgodność źródła .
Zalecana akcja
Postępuj zgodnie z określonymi wskazówkami podanymi dla każdego identyfikatora diagnostycznego przy użyciu linku adresu URL podanego w ostrzeżeniu.
Ostrzeżenia lub błędy dla tych obsoletions nie mogą być pomijane przy użyciu standardowego identyfikatora diagnostycznego dla przestarzałych typów lub elementów członkowskich; Zamiast tego użyj niestandardowej wartości identyfikatora diagnostycznego
SYSLIBxxxx.
Interfejsy API, których dotyczy problem
SYSLIB0036
SYSLIB0037
SYSLIB0038
SYSLIB0039
SYSLIB0040
- System.Net.Security.EncryptionPolicy.AllowNoEncryption
- System.Net.Security.EncryptionPolicy.NoEncryption
SYSLIB0041
- Rfc2898DeriveBytes(String, Byte[])
- Rfc2898DeriveBytes(String, Int32)
- Rfc2898DeriveBytes(Byte[], Byte[], Int32)
- Rfc2898DeriveBytes(String, Byte[], Int32)
- Rfc2898DeriveBytes(String, Int32, Int32)
SYSLIB0042
- System.Security.Cryptography.ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.FromXmlString(String)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.ToXmlString()
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToXmlString()
- System.Security.Cryptography.ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDsaCng.ToXmlString(ECKeyXmlFormat)
SYSLIB0043
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToByteArray()
- ECDiffieHellmanPublicKey(Byte[])
SYSLIB0045
- System.Security.Cryptography.Aes.Create(String)
- System.Security.Cryptography.AsymmetricAlgorithm.Create(String)
- System.Security.Cryptography.DES.Create(String)
- System.Security.Cryptography.ECDiffieHellman.Create(String)
- System.Security.Cryptography.ECDsa.Create(String)
- System.Security.Cryptography.HashAlgorithm.Create(String)
- System.Security.Cryptography.KeyedHashAlgorithm.Create(String)
- System.Security.Cryptography.RandomNumberGenerator.Create(String)
- System.Security.Cryptography.RC2.Create(String)
- System.Security.Cryptography.Rijndael.Create(String)
- System.Security.Cryptography.RSA.Create(String)
- System.Security.Cryptography.SHA1.Create(String)
- System.Security.Cryptography.SHA256.Create(String)
- System.Security.Cryptography.SHA384.Create(String)
- System.Security.Cryptography.SHA512.Create(String)
- System.Security.Cryptography.SymmetricAlgorithm.Create(String)
- System.Security.Cryptography.TripleDES.Create(String)