Blazor WebAssembly не поддерживает интерфейсы API System.Security.Cryptography

API System.Security.Cryptography выдают исключение PlatformNotSupportedException при выполнении в браузере.

Описание изменения

В предыдущих версиях .NET большинство API System.Security.Cryptography были недоступны приложениям Blazor WebAssembly. Начиная с .NET 5 приложения Blazor WebAssembly предназначены для использования в полной контактной зоне API .NET 5, но из-за ограничений песочницы браузера поддерживаются не все API .NET 5. В .NET 5 и более поздних версиях неподдерживаемые API System.Security.Cryptography выдают исключение PlatformNotSupportedException при выполнении в WebAssembly.

Совет

Анализатор совместимости платформ помечает все вызовы затронутых API при сборке проекта, который поддерживает платформу браузера. Этот анализатор выполняется по умолчанию в приложениях .NET 5 и более поздних версий.

Причина изменения

Корпорация Майкрософт не может предоставить OpenSSL как зависимость в конфигурации Blazor WebAssembly. Мы пытались решить эту проблему, выполнив интеграцию с API SubtleCrypto браузера. К сожалению, это требует кардинального изменения API, что усложняет интеграцию.

Представленные версии

5,0

В настоящее время мы не можем предложить решение.

Затронутые API

Все API System.Security.Cryptography за исключением следующих:

  • 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