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