Penyamaran Pengguna dalam Aplikasi .NET
.NET menawarkan alat yang berkuasa untuk melaksanakan kod di bawah akaun pengguna tertentu, satu proses yang dikenali sebagai penyamaran. Ini melibatkan dua aspek utama: mekanisme penyamaran itu sendiri dan mengakses kelayakan akaun pengguna sasaran.
Proses penyamaran
ruang nama menyediakan API yang diperlukan. Pendekatan moden dan cekap menggunakan System.Security.Principal
. Kaedah ini mengambil pemegang token pengguna dan perwakilan (atau ekspresi lambda) yang mengandungi kod untuk dijalankan di bawah konteks pengguna yang disamar. WindowsIdentity.RunImpersonated
WindowsIdentity.RunImpersonated(userHandle, () => { // Code executed as the impersonated user });
Mengakses Kelayakan Pengguna
manakala API Win32 asli boleh digunakan untuk mendapatkan token akaun pengguna menggunakan nama pengguna dan kata laluan, menggunakan pembalut yang diuruskan seperti LogonUser
dinasihatkan untuk pengendalian keselamatan dan ralat yang lebih baik. SimpleImpersonation
using SimpleImpersonation; var credentials = new UserCredentials(domain, username, password); using SafeAccessTokenHandle userHandle = credentials.LogonUser(LogonType.Interactive);
Pertimbangan dan batasan penting
Penyamaran secara semulajadi terhad kepada mesin tempatan. Mengakses sumber pada mesin jauh memerlukan kedua -dua mesin berada dalam domain yang sama atau berkongsi hubungan amanah. Pendekatan ini tidak sesuai untuk menyamar sebagai pengguna pada sistem domain.Atas ialah kandungan terperinci Bagaimanakah saya dapat menyamar sebagai pengguna dalam aplikasi .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!