Le API System.Security.Cryptography non sono supportate in Blazor WebAssembly

Le API System.Security.Cryptography generano una PlatformNotSupportedException in fase di esecuzione quando vengono eseguite in un browser.

Descrizione delle modifiche

Nelle versioni precedenti di .NET la maggior parte delle API System.Security.Cryptography non è disponibile per le app Blazor WebAssembly. A partire da .NET 5, le app Blazor WebAssembly hanno come destinazione l'area di attacco completa dell'API .NET 5, ma non tutte le API .NET 5 sono supportate a causa di vincoli sandbox del browser. In .NET 5 e versioni successive le API System.Security.Cryptography non supportate generano una PlatformNotSupportedException durante l'esecuzione in WebAssembly.

Suggerimento

L'Analizzatore della compatibilità della piattaforma contrassegnerà tutte le chiamate alle API interessate quando si compila un progetto che supporta la piattaforma del browser. Questo analizzatore viene eseguito per impostazione predefinita nelle app .NET 5 e versioni successive.

Motivo della modifica

Microsoft non è in grado di spedire OpenSSL come dipendenza nella configurazione di Blazor WebAssembly. Microsoft ha provato a risolvere questo problema provando a eseguire l'integrazione con l'API SubtleCrypto del browser. Sfortunatamente, ciò richiedeva modifiche significative all'API che complicavano eccessivamente l'integrazione.

Versione di introduzione

5.0

Non esistono soluzioni alternative valide da suggerire in questo momento.

API interessate

Tutte le API System.Security.Cryptography ad eccezione delle seguenti:

  • 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