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 😀 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.

Leave a Reply

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