ProtectedMemory.Protect(Byte[], MemoryProtectionScope) Methode

Definition

Schützt die angegebenen Daten.

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)

Parameter

userData
Byte[]

Das Bytearray, das Daten im Arbeitsspeicher enthält, die geschützt werden sollen. Das Array muss ein Vielfaches von 16 Byte sein.

scope
MemoryProtectionScope

Einer der Enumerationswerte, die den Bereich des Speicherschutzes angibt.

Ausnahmen

userData muss 16 Bytes lang oder in Vielfachen von 16 Bytes sein.

Das Betriebssystem unterstützt diese Methode nicht. Diese Methode kann nur mit den betriebssystemen Windows 2000 oder höher verwendet werden.

userData ist null.

Beispiele

Das folgende Codebeispiel zeigt, wie Der Datenschutz verwendet wird.

#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

Hinweise

Diese Methode kann verwendet werden, um Daten im Arbeitsspeicher zu schützen. Beachten Sie, dass die Methode keine Kopie der Daten vornimmt, sondern das Bytearray verschlüsselt. Der userData Parameter muss 16 Bytes lang oder ein Vielfaches von 16 Bytes sein.

Unterstützung für diese Methode ist in den Windows XP und späteren Betriebssystemen verfügbar.

Gilt für: