Cara: Membuat Objek WindowsPrincipal
Catatan
Artikel ini berlaku untuk Windows.
Untuk informasi tentang ASP.NET Core, lihat Keamanan ASP.NET Core.
Ada dua cara untuk membuat objek WindowsPrincipal, bergantung pada apakah kode harus berulang kali melakukan validasi berbasis peran atau harus melakukannya hanya sekali.
Jika kode harus berulang kali melakukan validasi berbasis peran, yang pertama dari prosedur berikut menghasilkan lebih sedikit overhead. Ketika kode perlu membuat validasi berbasis peran hanya sekali, Anda dapat membuat objek WindowsPrincipal menggunakan prosedur kedua berikut ini.
Untuk membuat objek WindowsPrincipal untuk validasi berulang
Panggil metode SetPrincipalPolicy pada objek AppDomain yang dikembalikan oleh properti AppDomain.CurrentDomain statis, dengan meneruskan nilai enumerasi PrincipalPolicy yang menunjukkan kebijakan baru yang seharusnya kepada metode. Nilai yang didukung adalah NoPrincipal, UnauthenticatedPrincipal, dan WindowsPrincipal. Kode berikut menunjukkan pemanggilan metode ini.
AppDomain.CurrentDomain.SetPrincipalPolicy( PrincipalPolicy.WindowsPrincipal);
AppDomain.CurrentDomain.SetPrincipalPolicy( _ PrincipalPolicy.WindowsPrincipal)
Dengan kumpulan kebijakan, gunakan properti Thread.CurrentPrincipal statis untuk mengambil prinsipal yang merangkum pengguna Windows saat ini. Karena jenis pengembalian properti adalah IPrincipal, Anda harus mentransmisikan hasilnya ke jenis WindowsPrincipal. Kode berikut menginisialisasi objek WindowsPrincipal baru ke nilai prinsipal yang terkait dengan utas saat ini.
WindowsPrincipal myPrincipal = (WindowsPrincipal) Thread.CurrentPrincipal;
Dim myPrincipal As WindowsPrincipal = _ CType(Thread.CurrentPrincipal, WindowsPrincipal)
Ketika objek prinsipal telah dibuat, Anda dapat menggunakan salah satu dari beberapa metode untuk memvalidasinya.
Guna membuat objek WindowsPrincipal untuk validasi tunggal
Inisialisasi objek WindowsIdentity baru dengan memanggil metode WindowsIdentity.GetCurrent statis, yang mengkueri akun Windows saat ini dan menempatkan informasi tentang akun tersebut ke objek identitas yang baru dibuat. Kode berikut membuat objek WindowsIdentity baru dan menginisialisasinya ke pengguna yang diautentikasi saat ini.
WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();
Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
Buat objek WindowsPrincipal baru dan teruskan nilai objek WindowsIdentity yang dibuat pada langkah sebelumnya.
WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);
Dim myPrincipal As New WindowsPrincipal(myIdentity)
Ketika objek prinsipal telah dibuat, Anda dapat menggunakan salah satu dari beberapa metode untuk memvalidasinya.