Autentifikasi user menggunakan Active Directory Service Interface

Setiap developer biasanya berhadapan dengan hal yang sama ketika membuat aplikasi yaitu menggunakan penggunaan modul user autentifikasi untuk pembatasan hak akses aplikasi. Entah sudah berapa kali saya membuat modul seperti itu sejak tahun 1990an. Hingga suatu kali atasan saya memunculkan suatu ide ‘Mengapa tidak kita gunakan saja user login-nya Windows alias Active Directory Service Interface atau ADSI?’. Good idea, and not only good but great. The questions now is HOW?? Akhirnya saya berpaling ke cara yang paling saya gemari… googling :D And whaala.. found several information about it. Saya mengkompile-nya, melakukan uji coba dan lain sebagainya hingga akhirnya terciptalah procedure user validasi sederhana ini.. fiuh. Jangan lupa untuk menambahkan System.DirectoryServices pada bagian using dari aplikasi C#.NET anda.

/// <summary>
/// Validate User of LDAP / Active Directory Service Interface
/// </summary>
/// <param name="DomainName">Nama domain dari ADSI (co. isnandi.net)< /param>
/// <param name="Login">nama login yang hendak di validasi </param>
/// <param name="Password">password dari login </param>
/// <returns></returns>
public bool ValidateADSIUser(string DomainName, string Login, string Password)
{
bool valid = false;

// Lakukan koneksi ke LDAP Server
string fullloginname = Login + "@" + DomainName;
DirectoryEntry ldapServer = new System.DirectoryServices.DirectoryEntry("LDAP://" + DomainName, fullloginname, Password);

try
{
//DirectorySearcher hanya dapat digunakan untuk LDAP provider.
System.DirectoryServices.DirectorySearcher Search = new System.DirectoryServices.DirectorySearcher(ldapServer);
Search.Filter = "(SAMAccountName=" + Login + ")";
System.DirectoryServices.SearchResult results = Search.FindOne();
//Karena kita hanya ingin melakukan autentifikasi, maka kita hanya mengambil satu hasil

if (results != null)
{
valid = true ;
}
}
catch (Exception e)
{
//nothing
valid = false;
}
finally
{ // akhirnya tidak lupa kita close koneksi ke LDAP provider
ldapServer.Close();
}

return valid;
}

Perlu juga diperhatikan bahwa prosedur ini hanya dapat digunakan pada LDAP 3.0 atau pada Windows Server 2003.

Related Posts

MySQL Collations and Character Sets, fitur baru MySql 4.1 yang buat pusing
Sungguh suatu keanehan luar biasa terjadi. Aplikasi monitoring resiko perdagangan bursa atau Risk Monitoring...
Windows XP SP2 membuat MS SQL Server 2000 tidak dapat diakses
Hari ini adalah pertama kalinya saya bertugas di klien yang merupakan suatu institusi pendidikan. Tugas...
Mengaktifkan akun built-in Administrator di Windows Vista
Buat developer atau yang terbiasa mengutak-atik PC seperti saya, akun dewa atau root atau administrator...
Borland Divest IDE Product Line…
Pertama kali baca di milis Delphindo (delphindo@yahoogroups.com) pagi ini setelah melihat status yahoo...

Leave a Reply

Your email address will not be published. Required fields are marked *

*


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>