.NET 8 应用程序在 Linux 容器上运行 CNG 加密在此平台上不受支持

问题描述 投票:0回答:1

我在 .NET8 中有一个 Blazor 应用程序,它使用以下代码来加密给定 PowerBI 网关的 PowerBI 数据源的凭据:

credentialDetails.EncryptedConnection = "NotEncrypted"; //FOR CONNECTION
credentialDetails.EncryptionAlgorithm = "RSA-OAEP"; //FOR CREDENTIALS
GatewayPublicKey gateway_towa_key = gateway_towa.PublicKey;

当资源是私有的并且需要本地网关来操作时,需要对凭证进行加密:

Microsoft.PowerBI.Api.Extensions.AsymmetricKeyEncryptor asymmetricKeyEncryptor = new(gateway_towa_key);
credentialDetails.Credentials = asymmetricKeyEncryptor.EncodeCredentials(credentialDetails.Credentials);

当应用程序在配置为的 Azure Web App 上运行时,上述代码可以正常工作 Windows 平台和 .NET8 Framework,但在 linux 上运行时会抛出以下错误:

此平台不支持下一代加密技术(CNG)

还有其他方法可以做到同样的事情并适用于跨平台吗?

powerbi cryptography credentials gateway platform
1个回答
0
投票

最终我能够通过从 Microsoft 的 github 获取代码来解决这个问题,而不是通过使用指令调用该方法,现在我已经在我的项目中创建了类,并且它可以正常工作。我怀疑包的 dll (Microsoft.PowerBI.Api.Extensions) 有一些针对 Windows 的指令或为 Windows 编译的指令,或者类似的东西。

© www.soinside.com 2019 - 2024. All rights reserved.