Core 5.0 项目引用 Framework 4.7.2 项目并抛出'System.Security.Cryptography.SHA256Cng' 错误

Core 5.0 project references Framework 4.7.2 project and throws'System.Security.Cryptography.SHA256Cng' error

框架项目是 运行 一种获取 AAD 到 dynamics 365 crm 的访问令牌的方法,returns 它作为请求 header。来自 运行 GetAuthHeader 的错误是

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'.)

我已经尝试研究它,我想知道我是否使用了错误的框架版本?任何帮助是极大的赞赏。下面显示的两种方法都使用 Framework 4.7.2.

我正在使用 PowerApps-Samples,特别是位于 https://github.com/microsoft/PowerApps-Samples/tree/master/cds/webapi/C%23/CDSWebApiService

的 CDSWebApiService

下面的方法在调用时抛出错误:

private AuthenticationHeaderValue GetAuthHeader()
        {
            AuthenticationResult authResult;
            if (_credential == null)
            {
                authResult = _authContext.AcquireTokenAsync(
                    serviceUri, clientId, 
                    new Uri(redirectUrl), 
                    new PlatformParameters(PromptBehavior.Auto)).Result;
            }
            else
            {
                authResult = _authContext.AcquireTokenAsync(serviceUri, clientId, _credential).Result;
            }
            return new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
        }

调用它的方法如下所示。对上面 GetAuthHeader 的调用是引发异常的原因:

protected override Task<HttpResponseMessage> SendAsync(
                  HttpRequestMessage request, CancellationToken cancellationToken)
        {
            try
            {
                request.Headers.Authorization = GetAuthHeader(); //This throws the error
            }
            catch (Exception ex)
            {

                throw ex;
            }
            return base.SendAsync(request, cancellationToken);
        }

简而言之,.NET Core 不支持它,您可能应该更新您的 .NET version/runtime。