Rumah > pembangunan bahagian belakang > Tutorial C#.Net > Direktori Aktif dengan C#

Direktori Aktif dengan C#

PHPz
Lepaskan: 2024-09-03 15:33:36
asal
785 orang telah melayarinya

Direktori Aktif dengan C# adalah yang pertama sekali untuk mengatur komputer, pengguna syarikat dan sebagainya. Perkara yang penting ialah sistem pengurusan pengguna yang biasanya digunakan oleh rangkaian perusahaan dan untuk tujuan perniagaan. Pentadbir syarikat akan gunakan untuk menyusun keseluruhan sejarah syarikat daripada komputer milik rangkaian, profil dan kebenaran akses, dan sebagainya. Direktori aktif ialah sejenis pangkalan data seperti Oracle dan SQL ia mempunyai bahasa jenis pertanyaan sendiri dan set peraturan berdasarkan LDAP.

Sintaks:

Untuk mengakses objek DirectoryEntry, kami memerlukan nama pengguna Active Directory, kata laluan dan alamat pelayan. Alamat pelayan mengandungi alamat IP atau laluan LDAP kelihatan seperti sintaks seperti berikut,

LDAP://domain_name.com/DC=domain_name,DC=com
Salin selepas log masuk

Bagaimana Active Directory berfungsi dalam C#?

Direktori Aktif sangat membantu untuk pentadbir IT yang membantu mengatur pengguna syarikat mereka, desktop dan banyak lagi. Direktori ini mempunyai struktur hierarki keseluruhan rangkaian yang mana dan apa yang ditunjukkan oleh gambar profil dan siapa yang mengakses storan dan sebagainya. Kebanyakan perniagaan memajukan aplikasi mereka daripada desktop ke aplikasi web yang memegang pengesahan LDAP berasaskan borang. Kadangkala aplikasi .NET berinteraksi dengan Microsoft Active Directory (AD) untuk mendapatkan semula senarai pengguna, untuk mencari kumpulan, untuk mengesahkan pengguna dan juga untuk mengesahkan pengguna yang berada dalam kumpulan Active Directory. Dengan menggunakan beberapa pendekatan, kami boleh mendapatkan semula maklumat daripada pangkalan data AD dalam domain kami.

Terdapat pelbagai pendekatan iaitu menggunakan LDAP (Lightweight Directory Access Protocol) yang mengandungi kelas DirectoryEntry dan DirectorySearch milik System.DirectoryServices ruang nama. Satu lagi pendekatan ialah menggunakan keseluruhan set pembungkus kelas dalam Active Directory (AD) di bawah ruang nama System.DirectoryServices.AccountManagement. Dengan menggunakan pertanyaan LDAP kita boleh mendapatkan maklumat daripada pangkalan data AD. Kelas ini membenarkan mengakses keseluruhan AD tetapi kelas pembalut membenarkan mendapatkan semula pengguna, objek komputer, kumpulan dalam AD. Objek DirectoryEntry dan DirectorySearch kelas adalah lebih cepat daripada objek System.DirectoryServices.AccountManagement.

Perkara asas untuk Active Directory dengan C# termasuk pustaka System.DirectoryService, ia membantu untuk membuat pertanyaan dengan rutin perpustakaan AD. Direktori aktif berkomunikasi melalui objek DirectoryEntry. Objek tersebut ialah sambungan paling penting kepada pangkalan data LDAP yang boleh kami tanyakan untuk objek dan folder tambahan. Untuk mengakses objek DirectoryEntry kami memerlukan nama pengguna Active Directory, kata laluan dan alamat pelayan. Alamat pelayan mengandungi alamat IP atau laluan LDAP kelihatan seperti berikut,

LDAP://domain_name.com/DC=domain_name,DC=com

Contoh Active Directory dengan C#

Untuk berhubung dengan Active Directory untuk objek DirectoryEntry, kerana kami perlu mencipta pengguna jenis pengesahan selamat yang menunjukkan sambungan selamat yang disahkan ke Active Directory. Apabila menyambung dengan akaun pentadbir, kami boleh melaksanakan fungsi Direktori Aktif pentadbir seperti mencipta pengguna baharu, mengemas kini pengguna, memadam pengguna dan sebagainya.

Dapatkan DirectoryEntry bagi objek Direktori

private DirectoryEntry Reterieve_DirectoryObject( )
{
DirectoryEntry Obj_de;
Obj_de=new DirectoryEntry("LDAP://IP_Address", "admin","password", AuthenticationTypes Secure);
return _de;
}
Salin selepas log masuk

Dapatkan pengguna daripada Active Directory dalam C#

Setelah menyambung dengan Active Directory, kami perlu membuat pertanyaan untuk objek seperti mendapatkan pengguna seperti berikut,

private DirectoryEntry Reterieve_User(string User_Name)
{
DirectoryEntry obj_de = Reterieve_DirectoryObject( );
DirectorySearcher obj_deSearch = new DirectorySearcher();
obj_deSearch.SearchRoot = obj_de;
obj_deSearch.Filter = "(&(objectClass=user)(JOHNAccountName=" + User_Name + "))";
obj_deSearch.SearchScope = SearchScope.Subtree;
SearchResult getPath = obj_deSearch.FindOne();
if (!(getPath == null))
{
obj_de = new DirectoryEntry(getPath.Path, "administrator", "password", AuthenticationTypes.Secure);
return obj_de;
}
else
{
return null;
}
}
Salin selepas log masuk

Kod di atas menerangkan cara untuk mendapatkan semula pengguna daripada Active Directory bergantung pada kelayakan log masuk mereka. Kita perlu menggunakan bahasa pertanyaan Active Directory tertentu yang disertakan dengan kurungan yang mengandungi nama seperti "JohnAccountName" dan nama pengguna seperti dalam Active Directory. Setelah mencari DirectoryEntry di sebelah kod objek DirectoryEntry baharu yang memautkan kepada hasil carian dan menggunakan butiran log masuk pentadbir dalam sambungan.

Buat pengguna yang sahih

Untuk mencipta pengguna yang disahkan untuk Active Directory, kami perlu menghantar rentetan laluan LDAP yang sah kepada pembina kelas DirectoryEntry, ia mengikut format LDAP://Doamin_name. Mari lihat kaedah berikut,

private bool AuthenticateUser(string domain_name, string user_name, string password)
{
bool result = false;
try
{
DirectoryEntry obj_de = new DirectoryEntry("LDAP://" + domainName, userName, password);
DirectorySearcher obj_dsearch = new DirectorySearcher(obj_de);
SearchResult _sResult = null;
sResult = obj_dsearch.FindOne();
result = true;
}
catch
{
result = false;
}
return result;
}
Salin selepas log masuk

Ubah butiran pengguna dalam Active Directory dalam C#

Untuk mengubah sifat objek Direktori Aktif dalam C# hanya mudah dalam C#, pertama sekali untuk mengakses medan sifat DirectoryEntry dan untuk mengubah nilai seperti yang diperlukan sebelum itu untuk menyemak sama ada ia batal atau tidak dan kemudian akhirnya memanggil fungsi ComminChanges untuk melaksanakan dan menyimpan perubahan yang dilakukan. Mari lihat kod di bawah yang menunjukkan yang mengubah sifat nama pengguna,

DirectoryEntry obj_de = Reterieve_User ("smith.rio");
if (obj_de!= null)
{
if (obj_de.Properties["displayName"] != null && obj_de.Properties["displayName"].Value != null)
{
de.Properties["displayName"].Value = "Smith, Rio (Welcome)";
de.CommitChanges();
}
}
Salin selepas log masuk

The above code describes the CommitChanges(), which will save the changes made in the Active Directory. The most important thing is that whatever changes are made will not be immediately visible in the applications of Active Directory like users of Active Directory and computers in the control panel it takes around 5-30 minutes to visible during changes because it needs to synchronize over the servers all through the network.

Querying Multiple Users in Active Directory with C# ASP .NET

The code above explained was to query the single DirectoryEntry object, whereas if we required for the list of objects we need to use the type SearchResultCollection joined with obj_deSearch, to search out all the things instead of finding one,

SearchResultCollection findUsers = retrieve_allUsers();
if (findUsers!= null && findUsers.Count > 0)
{
foreach (SearchResult getUser in findUsers)
{
DirectoryEntry obj_de = getUser.GetDirectoryEntry();
}
}
Salin selepas log masuk

Conclusion

In this article, I have explained about the Active Directory and how to retrieve details of users, system usage, groups, and also to authenticate the user. By using some classes, we can easily retrieve the details from the active directory (AD) database. Active Directory with C# is a foremost tool for enterprise networks and for businesses. When designing with web applications which suit for desktop applications to the web to make powerful organizations.

Atas ialah kandungan terperinci Direktori Aktif dengan C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan