Leer en inglés

Compartir a través de


DataProtectionScope Enumeración

Definición

Especifica el ámbito de protección de datos que va a aplicar el método Protect(Byte[], Byte[], DataProtectionScope).

C#
public enum DataProtectionScope
Herencia
DataProtectionScope

Campos

Nombre Valor Description
CurrentUser 0

Los datos protegidos están asociados al usuario actual. Sólo los subprocesos que se ejecutan en el contexto del usuario actual pueden desproteger los datos.

LocalMachine 1

Los datos protegidos están asociados al contexto del equipo. Cualquier proceso que se ejecuta en el equipo puede desproteger los datos. Este valor de enumeración normalmente se utiliza en aplicaciones específicas del servidor que se ejecutan en un servidor al que no tienen acceso los usuarios no permitidos.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la protección de datos.

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

Comentarios

Esta enumeración se usa con los Protect métodos y Unprotect para proteger los datos a través del cifrado.

Precaución El valor de enumeración LocalMachine permite que varias cuentas desprotejan datos. Use este valor solo cuando confíe en cada cuenta de un equipo. Para la mayoría de las situaciones, debe usar el valor CurrentUser.

Se aplica a

Producto Versiones
.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