3
votes

System.Security.Cryptography.SHA256Cng .NET Core

J'ai une application principale .net comme console et j'essaie d'obtenir des valeurs d'Azure Db. Ce code fonctionne parfaitement sur .NET Framework (standard) et je reçois toujours mes données mais je dois travailler avec .NET Core. En bref, j'ai une méthode qui GetConfig d'une autre (.dll) et à chaque fois que j'obtiens une exception:

Exception

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

Je sais que .NET Core a System.Core mais il n'a pas" SHA256Cng ", juste" SHA256 ". Peut-être puis-je utiliser .net framework .dll ou existe-t-il un autre moyen de résoudre ce problème? PS. Vous devez utiliser uniquement .NET Core (application console .net et autres).

Merci.

Méthode

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


2 commentaires

Avez-vous le contrôle sur le ddl? vous devez changer la référence dans le ddl pour pointer également vers le paquet nuget. Parce que pour le moment, il essaie d'obtenir le SHA256Cng de System.Core et avec .net core le SHA256Cng n'est pas dans le système .core dll


Ok, comment faire? Je ne le trouve pas :(


3 Réponses :


0
votes

Je crois que la classe SHA256 fait partie de «System.Security.Cryptography». Avez-vous cette bibliothèque?


1 commentaires

Oui. J'ai également installé d'autres packages nuget tels que l'algorithme, la cryptographie. L'algorithme a SHA256Cng mais MSDN dit ce "Sha" uniquement dans le cadre .net. Si je ne peux pas résoudre cela, je serai de nouveau à l'exception. IDK pourquoi seul le standard de cadre .net l'a. Comment résoudre ça?



1
votes

Utilisez SHA256.Create () au lieu de new SHA256Cng ()


1 commentaires

Je note que dans .NET Core (et non .NET Framework), la seule garantie est que l'implémentation SHA-256 fonctionnera au moins, mais il n'y a aucune garantie que SHA256.Create () retournera le mise en œuvre la plus rapide possible sur votre plateforme.



0
votes

La seule solution que j'ai trouvée est de créer un projet de framework .NET car .NET Core ne prend pas en charge cette classe.


0 commentaires