Blazor WebAssembly'de System.Security.Cryptography API'leri desteklenmiyor

System.Security.Cryptography API'ler PlatformNotSupportedException tarayıcıda çalıştırıldığında çalışma zamanında oluşturur.

Açıklama değiştirildi

Önceki .NET sürümlerinde API'lerin çoğu System.Security.Cryptography Blazor WebAssembly uygulamalarında kullanılamaz. .NET 5'den başlayarak Blazor WebAssembly uygulamaları tam .NET 5 API yüzey alanını hedefler, ancak tarayıcı korumalı alanı kısıtlamaları nedeniyle tüm .NET 5 API'leri desteklenmez. .NET 5 ve sonraki sürümlerinde desteklenmeyen API'ler System.Security.Cryptography WebAssembly üzerinde çalışırken bir PlatformNotSupportedException oluşturur.

İpucu

Platform uyumluluk çözümleyicisi, tarayıcı platformunu destekleyen bir proje oluşturduğunuzda etkilenen API'lere yapılan çağrıları bayrakla işaretler. Bu çözümleyici varsayılan olarak .NET 5 ve üzeri uygulamalarda çalışır.

Değişiklik nedeni

Microsoft, OpenSSL'yi Blazor WebAssembly yapılandırmasında bağımlılık olarak gönderemiyor. Tarayıcının API'siyle SubtleCrypto tümleştirmeye çalışarak bu sorunu çözmeye çalıştık. Ne yazık ki, tümleştirmeyi zorlaştıran önemli API değişikliklerine ihtiyaç duyuluyor.

Sürüm kullanıma sunulmuştur

5.0

Şu anda önerecek iyi bir geçici çözüm yoktur.

Etkilenen API’ler

Aşağıdakiler dışındaki tüm System.Security.Cryptography API'ler:

  • System.Security.Cryptography.RandomNumberGenerator
  • System.Security.Cryptography.IncrementalHash
  • System.Security.Cryptography.SHA1
  • System.Security.Cryptography.SHA256
  • System.Security.Cryptography.SHA384
  • System.Security.Cryptography.SHA512
  • System.Security.Cryptography.SHA1Managed
  • System.Security.Cryptography.SHA256Managed
  • System.Security.Cryptography.SHA384Managed
  • System.Security.Cryptography.SHA512Managed