MachineKey.Protect(Byte[], String[]) Methode

Definitie

Beveiligt de opgegeven gegevens door deze te versleutelen of te ondertekenen.

public:
 static cli::array <System::Byte> ^ Protect(cli::array <System::Byte> ^ userData, ... cli::array <System::String ^> ^ purposes);
public static byte[] Protect(byte[] userData, params string[] purposes);
static member Protect : byte[] * string[] -> byte[]
Public Shared Function Protect (userData As Byte(), ParamArray purposes As String()) As Byte()

Parameters

userData
Byte[]

De gegevens die moeten worden beveiligd. Deze gegevens worden doorgegeven als tekst zonder opmaak.

purposes
String[]

Een lijst met doeleinden voor de gegevens. Als deze waarde is opgegeven, moet dezelfde lijst worden doorgegeven aan de Unprotect(Byte[], String[]) methode om de geretourneerde coderingstekst te ontcijferen.

Retouren

Byte[]

De coderingstekstgegevens.

Uitzonderingen

De userData parameter is null.

De doelmatrix bevat een of meer vermeldingen met alleen witruimte.

Opmerkingen

Deze methode vervangt de Encode methode, waarvoor de aanroeper moet opgeven of de gegevens zonder opmaak moeten worden versleuteld, ondertekend of beide. De Protect methode voert de juiste bewerking uit en beveiligt de gegevens veilig. Ciphertext-gegevens die door deze methode worden geproduceerd, kunnen alleen worden ontcijferd door de Unprotect methode.

De purposes parameter is een optionele lijst met redenen die de coderingstekst aan een specifiek doel kunnen vergrendelen. Met deze parameter kunt u cryptografische bewerkingen isoleren die worden uitgevoerd door verschillende subsystemen binnen een toepassing. Een kwaadwillende client mag het resultaat van de methode van het ene subsysteem niet kunnen ophalen en deze invoeren als invoer voor de methode van Protect een ander subsysteemUnprotect, waardoor de beveiliging van toepassingen kan worden aangetast. De purposes parameter zorgt ervoor dat beveiligde gegevens alleen kunnen worden gebruikt door het onderdeel dat het oorspronkelijk heeft gegenereerd. Toepassingen moeten ervoor zorgen dat elk subsysteem een unieke purposes lijst gebruikt.

Als u bijvoorbeeld een verificatietoken wilt beveiligen of de beveiliging ervan wilt opheffen, kunt u de methode aanroepen met behulp van code, zoals in het volgende voorbeeld:

MachineKey.Protect(..., "Authentication token");
MachineKey.Unprotect(..., "Authentication token");
MachineKey.Protect(..., "Authentication token")
MachineKey.Unprotect(..., "Authentication token")

Toepassingen kunnen de purposes parameter dynamisch genereren. In dat geval worden door de gebruiker geleverde voorvoegselwaarden met een vaste waarde (zoals "Username: + gebruikersnaam) gebruikt om het risico van schadelijke invoer voor het maken van clients te minimaliseren die overeenkomt met een token dat door een ander deel van het systeem wordt gebruikt. Alle dynamisch gegenereerde tekenreeksen moeten na vaste tekenreeksen worden geleverd. Als u bijvoorbeeld een privébericht wilt beveiligen of de beveiliging wilt opheffen dat is gekoppeld aan een specifieke gebruiker, gebruikt u code zoals in het volgende voorbeeld:

MachineKey.Protect(..., "Private message", "Recipient: " + username);
MachineKey.Unprotect(..., "Private message", "Recipient: " + username);
MachineKey.Protect(..., "Private message", "Recipient: " + username)
MachineKey.Unprotect(..., "Private message", "Recipient: " + username)

Wanneer de Unprotect methode wordt aangeroepen, moet de waarde die is opgegeven voor de purposes parameter dezelfde waarde zijn die aan de Protect methode is opgegeven. Anders mislukt de bewerking met een CryptographicException uitzondering.

De configuratie-instellingen die vereist zijn voor de MachineKeyCompatibilityMode.Framework45 optie zijn vereist voor deze methode, zelfs als de MachineKeySection.CompatibilityMode eigenschap niet is ingesteld op de Framework45 optie.

Van toepassing op