ProtectedMemory.Protect(Byte[], MemoryProtectionScope) Méthode

Définition

Protège les données spécifiées.

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)

Paramètres

userData
Byte[]

Tableau d’octets contenant des données en mémoire à protéger. Le tableau doit être un multiple de 16 octets.

scope
MemoryProtectionScope

Une des valeurs d’énumération qui spécifie l’étendue de la protection de la mémoire.

Exceptions

userData doit être de 16 octets de longueur ou en multiples de 16 octets.

Le système d’exploitation ne prend pas en charge cette méthode. Cette méthode ne peut être utilisée qu’avec les systèmes d’exploitation Windows 2000 ou ultérieur.

userData a la valeur null.

Exemples

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

#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

Remarques

Cette méthode peut être utilisée pour protéger les données en mémoire. Notez que la méthode n’effectue pas de copie des données, mais chiffre le tableau d’octets en place. Le userData paramètre doit avoir une longueur de 16 octets ou un multiple de 16 octets.

La prise en charge de cette méthode est disponible dans les systèmes d’exploitation Windows XP et ultérieurs.

S’applique à