Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET 10'dan başlayarak, System.Security.Cryptography.Rfc2898DeriveBytes üzerindeki tüm oluşturucular kullanım dışıdır. Bu oluşturucuların kodda çağrılması, derleme zamanında uyarı SYSLIB0060 oluşturur.
Kullanımdan kaldırılmış olma nedeni
System.Security.Cryptography.Rfc2898DeriveBytes tarafından sağlanan PBKDF2'nin örnek tabanlı uygulaması, GetBytesüzerinden ardışık çağrılar yaparak baytların akışını geri gönderip standart dışı bir kullanım sağlar. PbKDF2'nin amaçlanan kullanımı bu değildir; algoritma tek seferlik olarak kullanılmalıdır. Tek seferlik işlevsellik, statik yöntem Rfc2898DeriveBytes.Pbkdf2 olarak bulunur ve System.Security.Cryptography.Rfc2898DeriveBytesörneği yerine kullanılmalıdır.
Geçici çözüm
bunun yerine Rfc2898DeriveBytes.Pbkdf2 tek seferlik statik yöntemi kullanmak için System.Security.Cryptography.Rfc2898DeriveBytes örneklerini ve GetBytes çağrılarını değiştirin.
Örneğin, şunu değiştirin:
using System.Security.Cryptography;
Rfc2898DeriveBytes kdf = new Rfc2898DeriveBytes(password, salt, iterations, hashAlgorithm);
byte[] derivedKey = kdf.GetBytes(64);
için
byte[] derivedKey = Rfc2898DeriveBytes.Pbkdf2(password, salt, iterations, hashAlgorithm, 64);
Uyarıyı gizleme
Eski API'yi kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.
Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.
// Disable the warning.
#pragma warning disable SYSLIB0060
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0060
Projenizdeki tüm SYSLIB0060 uyarılarını engellemek için proje dosyanıza bir <NoWarn> özelliği ekleyin.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0060</NoWarn>
</PropertyGroup>
</Project>
Daha fazla bilgi için bkz. uyarıları gizleme.