2012-06-25 3 views
7

Ich kopiere kleistert von MSDN diesen Code:SHA1 (und ganz Cryptography-Namespace) in Visual Studio 2012 fehlt

using System.Security.Cryptography; 

byte[] buffer = enc.GetBytes(text); 
SHA1CryptoServiceProvider cryptoTransformSHA1 = 
      new SHA1CryptoServiceProvider(); 
string hash = BitConverter.ToString(
      cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", ""); 

return hash; 

aber VS sagt, es gibt keine solche Cryptography Namensraum, also gibt es keine SHA1CryptoServiceProvider Klasse.

Was mache ich falsch?

Ich verwende Visual Studio Professional 2012 RC mit Dreamspark Lizenz in Windows 8 Release Preview.

+0

können Sie den Link dieses Codes geben? – aliboy38

+0

es ist da. Siehe MSDn http://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx –

+0

Vielleicht habe ich mich nicht erklärt, ich meinte VS sagt er kann diese Klasse nicht finden nornamespace –

Antwort

5

Ich nehme an, dass Sie eine U-Bahn-Anwendung zu erstellen versuchen? Anwendungen im Metro-Stil unterstützen den Namensraum System.Security.Cryptography nicht. Die vollständige Liste der unterstützten .NET-API-Namespaces für Metro-Anwendungen finden Sie unter here.

Stand Juni 29

Wie Guillermo obwohl bemerkt hat, besteht die Windows.Security.Cryptograhy.Core Namensraum, das enthält eine HashAlgorithmProvider Klasse, wo z.B. Der SHA1-Algorithmus kann angewendet werden.

+2

Wie ist das möglich? Bedeutet das, dass ich SHA-1 nicht mehr verwenden kann, wenn ich eine Metro-App möchte? – sharptooth

5

Antwort ist, wie Anders Gustafsson wies darauf hin, dass in Metro System.Security.Cryptography nicht unterstützt wird. ABER Sie haben Windows.Security.Cryptography stattdessen.

+0

Ja, ich habe es gesehen, aber beim ersten Mal nicht genau hingesehen. Danke, dass du es aufgezeigt hast. Ich habe meine Antwort mit einigen Links zur MSDN-Dokumentation auf Vollständigkeit aktualisiert. –