'CspKeyContainerInfo' 需要 Windows 加密 API (CAPI),此平台不可用
'CspKeyContainerInfo' requires Windows Cryptographic API (CAPI), which is not available on this platform
我已将我的项目从 v2.1 升级到 asp.net 核心 v2.2,一切都用于工作 fine.In 下面显示的代码,我正在尝试为以下代码初始化 RSA 密钥使用 IdentityServer4(v2.3.2) 并在尝试获取令牌时出现以下错误。
try
{
var rsaProvider = new RSACryptoServiceProvider(2048);
var rsaParametersPrivate =
RsaExtensions.RsaParametersFromXmlFile(Configuration.GetSection("JwtSettings:rsaPrivateKeyXml")
.Value);
rsaProvider.ImportParameters(rsaParametersPrivate);
var securityKey = new RsaSecurityKey(rsaProvider);
_signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.RsaSha256);
_logger.LogInformation("InitializeRsaKey() successfully executed.");
}
catch (Exception ex)
{
var exception = new Exception("Identity Server RSA Key initialization failed. " + ex);
_logger.LogError(exception, "InitializeRsaKey() method failed.");
throw exception;
}
'CspKeyContainerInfo' requires Windows Cryptographic API (CAPI), which is not available on this platform. error.
此外,我的项目在 CentOS 机器上运行,同时我在 Windows 10 上开发我的项目。所以,我知道 Windows 中存在的东西在 Linux 上丢失了。为了解决问题,我们将不胜感激任何帮助和建议。
我挖掘了一些 github 问题,发现 RSACryptoServiceProvider()
继承了 ICspAsymmetricAlgorithm
并且此 class 仅在 Windows 上受支持。有关详细信息,请查看 here。为了解决这个问题,我用 var rsaProvider = RSA.Create(2048);
替换了 var rsaProvider = new RSACryptoServiceProvider(2048);
行,它在 CentOS 上与 .NET Core v2.2 一起工作正常。希望对遇到同样问题的人有所帮助。
我已将我的项目从 v2.1 升级到 asp.net 核心 v2.2,一切都用于工作 fine.In 下面显示的代码,我正在尝试为以下代码初始化 RSA 密钥使用 IdentityServer4(v2.3.2) 并在尝试获取令牌时出现以下错误。
try
{
var rsaProvider = new RSACryptoServiceProvider(2048);
var rsaParametersPrivate =
RsaExtensions.RsaParametersFromXmlFile(Configuration.GetSection("JwtSettings:rsaPrivateKeyXml")
.Value);
rsaProvider.ImportParameters(rsaParametersPrivate);
var securityKey = new RsaSecurityKey(rsaProvider);
_signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.RsaSha256);
_logger.LogInformation("InitializeRsaKey() successfully executed.");
}
catch (Exception ex)
{
var exception = new Exception("Identity Server RSA Key initialization failed. " + ex);
_logger.LogError(exception, "InitializeRsaKey() method failed.");
throw exception;
}
'CspKeyContainerInfo' requires Windows Cryptographic API (CAPI), which is not available on this platform. error.
此外,我的项目在 CentOS 机器上运行,同时我在 Windows 10 上开发我的项目。所以,我知道 Windows 中存在的东西在 Linux 上丢失了。为了解决问题,我们将不胜感激任何帮助和建议。
我挖掘了一些 github 问题,发现 RSACryptoServiceProvider()
继承了 ICspAsymmetricAlgorithm
并且此 class 仅在 Windows 上受支持。有关详细信息,请查看 here。为了解决这个问题,我用 var rsaProvider = RSA.Create(2048);
替换了 var rsaProvider = new RSACryptoServiceProvider(2048);
行,它在 CentOS 上与 .NET Core v2.2 一起工作正常。希望对遇到同样问题的人有所帮助。