Les API System.Security.Cryptography ne sont pas prises en charge sur Blazor WebAssembly
Les API System.Security.Cryptography lèvent PlatformNotSupportedException au moment de l’exécution lors de l’exécution sur un navigateur.
Description de la modification
Dans les versions précédentes de .NET, la plupart des API System.Security.Cryptography ne sont pas disponibles pour les applications Blazor WebAssembly. À compter de .NET 5, les applications Blazor WebAssembly ciblent la surface d’exposition complète de l’API .NET 5. Toutefois, toutes les API .NET 5 ne sont pas prises en charge en raison des contraintes de bac à sable du navigateur. Dans .NET 5 et versions ultérieures, les API System.Security.Cryptography non prises en charge lèvent PlatformNotSupportedException lors de l’exécution sur WebAssembly.
Conseil
L’analyseur de compatibilité de plateforme signale tous les appels aux API affectées lorsque vous générez un projet qui prend en charge la plateforme de navigateur. Cet analyseur s’exécute par défaut dans les applications .NET 5 et versions ultérieures.
Raison du changement
Microsoft ne peut pas livrer OpenSSL en tant que dépendance dans la configuration Blazor WebAssembly. Nous avons tenté de contourner ce problème en essayant d’intégrer l’API SubtleCrypto
du navigateur. Malheureusement, cela nécessitait des modifications importantes de l’API qui l’ont rendue trop difficile à intégrer.
Version introduite
5,0
Action recommandée
Il n’existe aucune solution de contournement suggérée pour l’instant.
API affectées
Toutes les API System.Security.Cryptography, à l’exception des suivantes :
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