MachineKey.Protect(Byte[], String[]) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Melindungi data yang ditentukan dengan mengenkripsi atau menandatanganinya.
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()
Parameter
- userData
- Byte[]
Data yang akan dilindungi. Data ini diteruskan sebagai teks biasa.
- purposes
- String[]
Daftar tujuan untuk data. Jika nilai ini ditentukan, daftar yang sama harus diteruskan ke Unprotect(Byte[], String[]) metode untuk menguraikan ciphertext yang dikembalikan.
Mengembalikan
Data ciphertext.
Pengecualian
Parameter userData null.
Array tujuan berisi satu atau beberapa entri khusus spasi putih.
Keterangan
Metode ini menggantikan metode , yang mengharuskan Encode pemanggil untuk menentukan apakah data teks biasa harus dienkripsi, ditandatangani, atau keduanya. Metode ini Protect melakukan operasi yang sesuai dan melindungi data dengan aman. Data ciphertext yang dihasilkan oleh metode ini hanya dapat diurai Unprotect oleh metode .
Parameter purposes adalah daftar alasan opsional yang dapat mengunci ciphertext ke tujuan tertentu. Parameter ini memungkinkan Anda mengisolasi operasi kriptografi yang dilakukan oleh subsistem yang berbeda dalam aplikasi. Klien berbahaya seharusnya tidak bisa mendapatkan hasil dari satu metode subsistem Protect dan memberinya umpan sebagai input ke metode subsistem Unprotect lain, yang dapat membahayakan keamanan aplikasi. Parameter purposes membantu memastikan bahwa data yang dilindungi hanya dapat digunakan oleh komponen yang awalnya menghasilkannya. Aplikasi harus memastikan bahwa setiap subsistem menggunakan daftar unik purposes .
Misalnya, untuk melindungi atau membatalkan proteksi token autentikasi, Anda dapat memanggil metode menggunakan kode seperti contoh berikut:
MachineKey.Protect(..., "Authentication token");
MachineKey.Unprotect(..., "Authentication token");
MachineKey.Protect(..., "Authentication token")
MachineKey.Unprotect(..., "Authentication token")
Aplikasi dapat secara dinamis menghasilkan purposes parameter . Dalam hal ini, awalan nilai yang disediakan pengguna dengan nilai tetap (seperti "Username: " + nama pengguna) untuk meminimalkan risiko input pembuatan klien berbahaya yang cocok dengan token yang digunakan oleh beberapa bagian lain dari sistem. Setiap string yang dihasilkan secara dinamis harus datang setelah string tetap. Misalnya, untuk melindungi atau membatalkan perlindungan pesan privat yang terkait dengan pengguna tertentu, gunakan kode seperti contoh berikut:
MachineKey.Protect(..., "Private message", "Recipient: " + username);
MachineKey.Unprotect(..., "Private message", "Recipient: " + username);
MachineKey.Protect(..., "Private message", "Recipient: " + username)
MachineKey.Unprotect(..., "Private message", "Recipient: " + username)
Ketika metode dipanggil Unprotect , nilai yang disediakan untuk purposes parameter harus nilai yang sama yang diberikan ke Protect metode . Jika tidak, operasi akan gagal dengan CryptographicException pengecualian.
Pengaturan konfigurasi yang diperlukan untuk MachineKeyCompatibilityMode.Framework45 opsi diperlukan untuk metode ini meskipun MachineKeySection.CompatibilityMode properti tidak diatur ke Framework45 opsi .