Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

ProtectedData-Klasse

Stellt Methoden zum Verschlüsseln und Entschlüsseln von Daten bereit. Diese Klasse kann nicht vererbt werden.

System.Object
  System.Security.Cryptography.ProtectedData

Namespace:  System.Security.Cryptography
Assembly:  System.Security (in System.Security.dll)
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public static class ProtectedData

Der ProtectedData-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode Statischer Member Protect Verschlüsselt die Daten in einem angegebenen Bytearray und gibt ein Bytearray zurück, das die verschlüsselten Daten enthält.
Öffentliche Methode Statischer Member Unprotect Entschlüsselt die Daten in einem angegebenen Bytearray und gibt ein Bytearray zurück, das die entschlüsselten Daten enthält.
Zum Seitenanfang

Diese Klasse ermöglicht den Zugriff auf die Datenschutz-API (DPAPI, Data Protection API), die im Betriebssystem Microsoft Windows 2000 und höher verfügbar ist. Dieser Dienst wird vom Betriebssystem bereitgestellt und erfordert keine zusätzlichen Bibliotheken. Mithilfe der Benutzer- bzw. Computerinformationen wird die Schutzfunktion bereitgestellt, um Daten zu verschlüsseln oder entschlüsseln.

Die Klasse besteht aus zwei Wrappern für die nicht verwaltete DPAPI sowie Protect und Unprotect. Diese beiden Methoden können zum Verschlüsseln und Entschlüsseln von Daten, z. B. Kennwörter, Schlüssel und Verbindungszeichenfolgen, verwendet werden.

Wenn Sie diese Methoden im Rahmen des Identitätswechsels verwenden, wird möglicherweise folgende Fehlermeldung angezeigt: "Ungültiger Schlüssel für angegebenen Status". Die Ursache hierfür besteht darin, dass die Schlüsseldaten von der DPAPI in Benutzerprofilen gespeichert werden. Wenn das Profil nicht geladen wird, kann keine Entschlüsselung durch die DPAPI erfolgen. Um diesen Fehler zu verhindern, laden Sie das Profil des Benutzers, den Sie imitieren möchten, bevor Sie eine der Methoden aufrufen. Eine Verwendung der DPAPI in Verbindung mit Identitätswechseln kann die Komplexität von Vorgängen erhöhen und erfordert sorgsame Entwurfsentscheidungen.

Hinweis Hinweis

Das auf diesen Typ oder Member angewendete HostProtectionAttribute-Attribut besitzt den folgenden Resources-Eigenschaftswert: MayLeakOnAbort. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder einer URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter der HostProtectionAttribute-Klasse oder unter SQL Server-Programmierung und Hostschutzattribute.

Im folgenden Beispiel wird die Verwendung des Datenschutzes veranschaulicht.


using System;
using System.Security.Cryptography;

public class DataProtectionSample
{
// Create byte array for additional entropy when using Protect method.
	static byte [] s_aditionalEntropy = { 9, 8, 7, 6, 5 };

	public static void Main()
	{
// Create a simple byte array containing data to be encrypted.
		
byte [] secret = { 0, 1, 2, 3, 4, 1, 2, 3, 4 };

//Encrypt the data.
		byte [] encryptedSecret = Protect( secret );
		Console.WriteLine("The encrypted byte array is:");
		PrintValues(encryptedSecret);
		
// Decrypt the data and store in a byte array.
		byte [] originalData = Unprotect( encryptedSecret );
		Console.WriteLine("{0}The original data is:", Environment.NewLine);
		PrintValues(originalData);

	}

	public static byte [] Protect( byte [] data )
	{
		try
		{
			// Encrypt the data using DataProtectionScope.CurrentUser. The result can be decrypted
			//  only by the same current user.
			return ProtectedData.Protect( data, s_aditionalEntropy, DataProtectionScope.CurrentUser );
		} 
		catch (CryptographicException e)
		{
			Console.WriteLine("Data was not encrypted. An error occurred.");
			Console.WriteLine(e.ToString());
			return null;
		}
	}

	public static byte [] Unprotect( byte [] data )
	{
		try
		{
			//Decrypt the data using DataProtectionScope.CurrentUser.
			return ProtectedData.Unprotect( data, s_aditionalEntropy, DataProtectionScope.CurrentUser );
		} 
		catch (CryptographicException e)
		{
			Console.WriteLine("Data was not decrypted. An error occurred.");
			Console.WriteLine(e.ToString());
			return null;
		}
	}

	public static void PrintValues( Byte[] myArr )  
	{
	      foreach ( Byte i in myArr )  
		  	{
		         Console.Write( "\t{0}", i );
			 }
      Console.WriteLine();
	 }

}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ