MachineKey.Protect(Byte[], String[]) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A megadott adatok védelme titkosítással vagy aláírással.
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()
Paraméterek
- userData
- Byte[]
A védeni kívánt adatok. Ezek az adatok egyszerű szövegként lesznek átadva.
- purposes
- String[]
Az adatok céljainak listája. Ha ez az érték meg van adva, ugyanazt a listát kell átadni a Unprotect(Byte[], String[]) metódusnak a visszaadott rejtjelszöveg visszafejtéséhez.
Válaszok
A rejtjelszöveg adatai.
Kivételek
A userData paraméter null értékű.
A céltömb egy vagy több csak üres bejegyzést tartalmaz.
Megjegyzések
Ez a metódus felülírja a Encode metódust, amely megköveteli, hogy a hívó határozza meg, hogy az egyszerű szöveges adatok titkosítva, aláírva vagy mindkettőként legyenek-e megadva. A Protect metódus elvégzi a megfelelő műveletet, és biztonságosan védi az adatokat. Az ezzel a módszerrel előállított titkosítószöveg-adatok csak a Unprotect metódussal fejthetők ki.
A purposes paraméter azoknak az okoknak a választható listája, amelyek a rejtjelszöveget egy adott célra zárolhatják. Ez a paraméter lehetővé teszi az alkalmazáson belüli különböző alrendszerek által végrehajtott titkosítási műveletek elkülönítését. A rosszindulatú ügyfelek nem kaphatják meg az egyik alrendszer Protect metódusának eredményét, és nem adhatják meg egy másik alrendszer metódusának Unprotect bemeneteként, ami veszélyeztetheti az alkalmazás biztonságát. A purposes paraméter segít biztosítani, hogy a védett adatokat csak az eredetileg létrehozott összetevő használja. Az alkalmazásoknak gondoskodniuk kell arról, hogy minden alrendszer egyedi purposes listát használjon.
Egy hitelesítési jogkivonat védelmének vagy védelmének feloldásához például meghívhatja a metódust a következő példához hasonló kóddal:
MachineKey.Protect(..., "Authentication token");
MachineKey.Unprotect(..., "Authentication token");
MachineKey.Protect(..., "Authentication token")
MachineKey.Unprotect(..., "Authentication token")
Az alkalmazások dinamikusan hozhatják létre a paramétert purposes . Ebben az esetben a felhasználó által megadott értékek előtagja rögzített értékkel (például "Username: + felhasználónév) a rendszer egy másik része által használt jogkivonatnak megfelelő rosszindulatú ügyfél-létrehozási bemenet kockázatának minimalizálása érdekében. A dinamikusan létrehozott sztringeknek rögzített sztringek után kell érkeznie. Egy adott felhasználóhoz kötődő privát üzenet védelméhez vagy védelmének feloldásához például használja az alábbi példához hasonló kódot:
MachineKey.Protect(..., "Private message", "Recipient: " + username);
MachineKey.Unprotect(..., "Private message", "Recipient: " + username);
MachineKey.Protect(..., "Private message", "Recipient: " + username)
MachineKey.Unprotect(..., "Private message", "Recipient: " + username)
A Unprotect metódus meghívásakor a paraméterhez purposes megadott értéknek meg kell egyeznie a metódusnak Protect megadott értékkel. Ellenkező esetben a művelet kivétellel CryptographicException meghiúsul.
A beállításhoz szükséges konfigurációs beállításokra akkor is szükség van ehhez a MachineKeyCompatibilityMode.Framework45 metódushoz, ha a MachineKeySection.CompatibilityMode tulajdonság nincs beállítva a Framework45 beállításra.