Auf Englisch lesen

Freigeben über


DataProtectionScope Enumeration

Definition

Gibt den Datenschutzbereich an, der von der Protect(Byte[], Byte[], DataProtectionScope)-Methode angewendet werden soll.

C#
public enum DataProtectionScope
Vererbung
DataProtectionScope

Felder

Name Wert Beschreibung
CurrentUser 0

Die geschützten Daten werden dem aktuellen Benutzer zugeordnet. Der Datenschutz kann nur durch Threads, die im Kontext des aktuellen Benutzers ausgeführt werden, aufgehoben werden.

LocalMachine 1

Die geschützten Daten werden dem Computerkontext zugeordnet. Der Datenschutz kann von jedem Prozess, der auf dem Computer ausgeführt wird, aufgehoben werden. Dieser Enumerationswert wird i. d. R. für serverspezifische Anwendungen verwendet, die auf Servern ausgeführt werden, auf die nicht vertrauenswürdige Benutzer keinen Zugriff haben.

Beispiele

Im folgenden Codebeispiel wird die Verwendung des Datenschutzes veranschaulicht.

C#
using System;
using System.Security.Cryptography;

public class DataProtectionSample
{
    // Create byte array for additional entropy when using Protect method.
    static byte [] s_additionalEntropy = { 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_additionalEntropy, 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_additionalEntropy, 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();
    }
}

Hinweise

Diese Enumeration wird mit den Protect Methoden und Unprotect verwendet, um Daten durch Verschlüsselung zu schützen.

Vorsicht Der LocalMachine-Enumerationswert ermöglicht es mehreren Konten, den Schutz von Daten aufzuheben. Verwenden Sie diesen Wert nur, wenn Sie jedem Konto auf einem Computer vertrauen. In den meisten Fällen sollten Sie den CurrentUser-Wert verwenden.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10