Udostępnij za pośrednictwem


Interfejsy API system.Security.Cryptography nie są obsługiwane w zestawie WebAssembly platformy Blazor

System.Security.Cryptography Interfejsy API zgłaszają PlatformNotSupportedException czas wykonywania podczas uruchamiania w przeglądarce.

Opis zmiany

W poprzednich wersjach platformy .NET większość System.Security.Cryptography interfejsów API nie jest dostępna dla aplikacji zestawu WebAssembly platformy Blazor. Począwszy od platformy .NET 5, aplikacje zestawu WebAssembly platformy Blazor są przeznaczone dla pełnego obszaru powierzchni interfejsu API platformy .NET 5, jednak nie wszystkie interfejsy API platformy .NET 5 są obsługiwane z powodu ograniczeń piaskownicy przeglądarki. W przypadku platformy .NET 5 i nowszych wersji nieobsługiwane System.Security.Cryptography interfejsy API zgłaszają PlatformNotSupportedException błąd podczas uruchamiania w zestawie WebAssembly.

Napiwek

Analizator zgodności platformy będzie flagować wszystkie wywołania interfejsów API, których dotyczy problem podczas kompilowania projektu obsługującego platformę przeglądarki. Ten analizator działa domyślnie w aplikacjach .NET 5 i nowszych.

Przyczyna wprowadzenia zmiany

Firma Microsoft nie może wysłać programu OpenSSL jako zależności w konfiguracji zestawu WebAssembly platformy Blazor. Próbowaliśmy obejść ten proces, próbując zintegrować się z interfejsem API przeglądarki SubtleCrypto . Niestety, wymaga to istotnych zmian interfejsu API, które sprawiły, że integracja była zbyt trudna.

Wprowadzona wersja

5,0

Obecnie nie ma dobrych obejść, które można sugerować.

Dotyczy interfejsów API

Wszystkie System.Security.Cryptography interfejsy API z wyjątkiem następujących:

  • 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