Condividi tramite


ProtectedMemory.Protect(Byte[], MemoryProtectionScope) Metodo

Definizione

Protegge i dati specificati.

public:
 static void Protect(cli::array <System::Byte> ^ userData, System::Security::Cryptography::MemoryProtectionScope scope);
public static void Protect (byte[] userData, System.Security.Cryptography.MemoryProtectionScope scope);
static member Protect : byte[] * System.Security.Cryptography.MemoryProtectionScope -> unit
Public Shared Sub Protect (userData As Byte(), scope As MemoryProtectionScope)

Parametri

userData
Byte[]

Matrice di byte che contiene i dati in memoria da proteggere. La matrice deve essere un multiplo di 16 byte.

scope
MemoryProtectionScope

Uno dei valori di enumerazione che specifica l'ambito di protezione della memoria.

Eccezioni

La lunghezza di userData deve essere pari a 16 byte o a multipli di 16 byte.

Il sistema operativo non supporta questo metodo, Questo metodo può essere utilizzato esclusivamente in Windows 2000 o nei sistemi operativi successivi.

userData è null.

Esempio

Nell'esempio di codice seguente viene illustrato come usare la protezione dei dati.

#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;

int main()
{
   
   // Create the original data to be encrypted (The data length should be a multiple of 16).
   array<Byte>^secret = {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
   
   // Encrypt the data in memory. The result is stored in the same array as the original data.
   ProtectedMemory::Protect( secret, MemoryProtectionScope::SameLogon );
   
   // Decrypt the data in memory and store in the original array.
   ProtectedMemory::Unprotect( secret, MemoryProtectionScope::SameLogon );
}
using System;
using System.Security.Cryptography;

public class MemoryProtectionSample
{

    public static void Main()
    {
        // Create the original data to be encrypted (The data length should be a multiple of 16).
        byte [] secret = { 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 };

        // Encrypt the data in memory. The result is stored in the same array as the original data.
        ProtectedMemory.Protect( secret, MemoryProtectionScope.SameLogon );

        // Decrypt the data in memory and store in the original array.
        ProtectedMemory.Unprotect( secret, MemoryProtectionScope.SameLogon );
    }
}
Imports System.Security.Cryptography

Public Class MemoryProtectionSample

    Public Shared Sub Main()
        ' Create the original data to be encrypted (The data length should be a multiple of 16).
        Dim secret As Byte() = {1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4}

        ' Encrypt the data in memory. The result is stored in the same array as the original data.
        ProtectedMemory.Protect(secret, MemoryProtectionScope.SameLogon)

        ' Decrypt the data in memory and store in the original array.
        ProtectedMemory.Unprotect(secret, MemoryProtectionScope.SameLogon)

    End Sub
End Class

Commenti

Questo metodo può essere usato per proteggere i dati in memoria. Si noti che il metodo non esegue una copia dei dati, ma crittografa la matrice di byte sul posto. Il userData parametro deve avere una lunghezza di 16 byte o un multiplo di 16 byte.

Il supporto per questo metodo è disponibile nei sistemi operativi Windows XP e versioni successive.

Si applica a