【问题标题】:System.Security.Cryptography.SHA256Cng .NET CoreSystem.Security.Cryptography.SHA256Cng .NET 核心
【发布时间】:2019-10-20 02:50:39
【问题描述】:

我有一个 .net 核心应用程序作为控制台,我正在尝试从 Azure Db 获取一些值。 此代码在 .NET Framework(标准)上完美运行,我总是能得到我的数据,但我需要使用 .NET Core。简而言之,我有一种方法可以从另一个(.dll)GetConfig 并且每次我得到异常:

Exception

System.AggregateException: 'One or more errors occurred. (Could not load type 'System.Security.Cryptography.SHA256Cng' from assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.)'

我知道 .NET Core 有 System.Core,但它没有“SHA256Cng”,只有“SHA256”。也许我可以使用 .net 框架 .dll 还是有其他方法可以解决这个问题? PS。只需使用 .NET Core(.net 控制台应用程序和其他)。

谢谢。

Method

public ITenantConfigurationProvider CreateTenantConfigurationProvider(ITenantClient client, string tenantId)
        {
            return client.GetConfigAsync(tenantId).Result;
        }

【问题讨论】:

  • 你对 ddl 有控制权吗?您还需要更改 ddl 中的引用以指向 nuget 包。因为目前它试图从System.Core 获取SHA256Cng,而对于.net 核心,SHA256Cng 不在system.core dll 中
  • 好的,怎么做?我找不到它:(

标签: c# azure dll .net-core sha256


【解决方案1】:

使用SHA256.Create() 而不是new SHA256Cng()

【讨论】:

  • 我注意到,在 .NET Core(而不是 .NET Framework)中,唯一的保证是 SHA-256 实现至少可以工作,但不能保证 SHA256.Create() 会以最快的速度返回可能在您的平台上实施。
【解决方案2】:

我相信 SHA256 类是“System.Security.Cryptography”的一部分。你有那个图书馆吗?

【讨论】:

  • 是的,我愿意。我还安装了其他 nuget 包,例如算法、密码学。算法有 SHA256Cng 但 MSDN 仅在 .net 框架中说这个“Sha”。如果我不能解决这个问题,我将再次获得异常。 IDK 为什么只有 .net 框架标准有它。如何解决?
【解决方案3】:

我找到的唯一解决方案是创建一个 .NET 框架项目,因为 .NET Core 不支持这个类。

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2016-12-27
    • 2022-07-08
    相关资源
    最近更新 更多