Lire en anglais

Partager via


DataProtectionScope Énumération

Définition

Spécifie la portée de la protection des données devant être appliquée par la méthode Protect(Byte[], Byte[], DataProtectionScope).

C#
public enum DataProtectionScope
Héritage
DataProtectionScope

Champs

Nom Valeur Description
CurrentUser 0

Les données protégées sont associées à l'utilisateur en cours. Seuls les threads exécutés dans le contexte utilisateur en cours peuvent ôter la protection des données.

LocalMachine 1

Les données protégées sont associées au contexte de l'ordinateur. Tout processus qui s'exécute sur l'ordinateur peut ôter la protection des données. Cette valeur d'énumération est généralement utilisée dans les applications spécifiques au serveur qui s'exécutent sur un serveur où les utilisateurs non fiables n'ont pas accès.

Exemples

L’exemple de code suivant montre comment utiliser la protection des données.

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();
    }
}

Remarques

Cette énumération est utilisée avec les méthodes et Unprotect pour protéger les données via le Protect chiffrement.

Attention La valeur d’énumération LocalMachine permet à plusieurs comptes de déprotéger les données. Utilisez cette valeur uniquement lorsque vous approuvez chaque compte sur un ordinateur. Dans la plupart des cas, vous devez utiliser la valeur CurrentUser.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (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 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9