MachineKey.Protect(Byte[], String[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Chrání zadaná data tím, že je zašifrujete nebo podepíšete.
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()
Parametry
- userData
- Byte[]
Data, která chcete chránit. Tato data se předávají jako prostý text.
- purposes
- String[]
Seznam účelů pro data. Pokud je tato hodnota zadána, musí být stejný seznam předán Unprotect(Byte[], String[]) metodě, aby bylo možné dešifrovat vrácený šifrovací text.
Návraty
- Byte[]
Šifrová data.
Výjimky
Parametr userData
má hodnotu null.
Pole účelu obsahuje jednu nebo více položek pouze prázdných znaků.
Poznámky
Tato metoda nahrazuje metodu Encode , která vyžaduje, aby volající určil, zda mají být data prostého textu šifrovaná, podepsaná nebo obojí. Metoda Protect provádí příslušnou operaci a bezpečně chrání data. Šifrová data vytvořená touto metodou lze dešifrovat pouze metodou Unprotect .
Parametr purposes
je volitelný seznam důvodů, které můžou zamknout šifru konkrétnímu účelu. Tento parametr umožňuje izolovat kryptografické operace prováděné různými subsystémy v rámci aplikace. Škodlivý klient by neměl mít možnost získat výsledek metody jednoho subsystému a dát ho jako vstup do metody jiného subsystému Protect Unprotect , což by mohlo ohrozit zabezpečení aplikace. Parametr purposes
pomáhá zajistit, aby chráněná data používala pouze komponenta, která je původně vygenerovala. Aplikace by měly zajistit, aby každý subsystém používal jedinečný purposes
seznam.
Pokud chcete například chránit nebo zrušit ochranu ověřovacího tokenu, můžete metodu volat pomocí kódu jako v následujícím příkladu:
MachineKey.Protect(..., "Authentication token");
MachineKey.Unprotect(..., "Authentication token");
MachineKey.Protect(..., "Authentication token")
MachineKey.Unprotect(..., "Authentication token")
Aplikace můžou parametr dynamicky generovat purposes
. V takovém případě se předpona uživatelem zadaných hodnot s pevnou hodnotou (například "Username:
+ uživatelské jméno) minimalizuje riziko škodlivého klientského vytváření vstupu, který odpovídá tokenu používanému jinou částí systému. Všechny dynamicky generované řetězce by měly pocházet po pevných řetězcích. Například k ochraně nebo zrušení ochrany soukromé zprávy, která je svázaná s konkrétním uživatelem, použijte kód podobný následujícímu příkladu:
MachineKey.Protect(..., "Private message", "Recipient: " + username);
MachineKey.Unprotect(..., "Private message", "Recipient: " + username);
MachineKey.Protect(..., "Private message", "Recipient: " + username)
MachineKey.Unprotect(..., "Private message", "Recipient: " + username)
Unprotect Při volání metody musí být hodnota, která je k dispozici pro purposes
parametr, stejná hodnota, která byla poskytnuta metoděProtect. Jinak operace selže s CryptographicException výjimkou.
Pro tuto metodu MachineKeyCompatibilityMode.Framework45 jsou vyžadována nastavení konfigurace, které jsou požadovány pro tuto metodu, i když MachineKeySection.CompatibilityMode vlastnost není nastavena Framework45 na tuto možnost.