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

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