Api:er för System.Security.Cryptography stöds inte på Blazor WebAssembly
System.Security.Cryptography API:er genererar en PlatformNotSupportedException vid körning när de körs i en webbläsare.
Ändra beskrivning
I tidigare .NET-versioner är de flesta API System.Security.Cryptography :er inte tillgängliga för Blazor WebAssembly-appar. Från och med .NET 5 riktar Blazor WebAssembly-appar in sig på hela .NET 5 API-ytan, men inte alla .NET 5-API:er stöds på grund av webbläsarens sandbox-begränsningar. I .NET 5 och senare versioner genererar API:erna som inte stöds System.Security.Cryptography en PlatformNotSupportedException när de körs på WebAssembly.
Dricks
Analysverktyg för plattformskompatibilitet flaggar alla anrop till de berörda API:erna när du skapar ett projekt som stöder webbläsarplattformen. Den här analysatorn körs som standard i .NET 5 och senare appar.
Orsak till ändringen
Microsoft kan inte leverera OpenSSL som ett beroende i Blazor WebAssembly-konfigurationen. Vi försökte kringgå detta genom att försöka integrera med webbläsarens SubtleCrypto
API. Tyvärr krävdes betydande API-ändringar som gjorde det för svårt att integrera.
Version introducerad
5,0
Rekommenderad åtgärd
Det finns inga bra lösningar att föreslå just nu.
Berörda API:er
Alla System.Security.Cryptography API:er utom följande:
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