MemoryProtectionScope 枚举

定义

指定将由 Protect(Byte[], MemoryProtectionScope) 方法应用的内存保护范围。Specifies the scope of memory protection to be applied by the Protect(Byte[], MemoryProtectionScope) method.

public enum class MemoryProtectionScope
public enum MemoryProtectionScope
type MemoryProtectionScope = 
Public Enum MemoryProtectionScope
继承
MemoryProtectionScope

字段

CrossProcess 1

任何进程中的任何代码均可使用 Protect(Byte[], MemoryProtectionScope) 方法取消对受保护内存的保护。All code in any process can unprotect memory that was protected using the Protect(Byte[], MemoryProtectionScope) method.

SameLogon 2

只有与调用 Protect(Byte[], MemoryProtectionScope) 方法的代码在相同的用户上下文中运行的代码才能取消对内存的保护。Only code running in the same user context as the code that called the Protect(Byte[], MemoryProtectionScope) method can unprotect memory.

SameProcess 0

只有与调用 Protect(Byte[], MemoryProtectionScope) 方法的代码在相同的进程中运行的代码才能取消对内存的保护。Only code running in the same process as the code that called the Protect(Byte[], MemoryProtectionScope) method can unprotect memory.

示例

下面的代码示例演示如何使用数据保护。The following code example shows how to use data protection.

#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

注解

此枚举与和Protect Unprotect方法一起使用以保护内存中的数据。This enumeration is used with the Protect and Unprotect methods to protect data in memory.

适用于