Huh.... finally i made it work after a long battle....
Thanks for everyone for sparing some time and effort into my question.
The following is the steps to make LDAP working... (a disclaimer here is that I am not sure if there are any other AD implementations where this solution might not work)
1) Prepare/build your LDAP statement to be like below.
LDAP://<domainname>/DC=<partoneofdomainname>,DC=<parttwoofdomainname>
Note: What is this partXofdomainname? Well, each domain name is made of multiple parts (exact technical term is not known to me). Each part is seperated by a period (.), and you would have to provide all the parts seperated by commas and assigned to "DC".
2) Create a DirectoryEntry object with the built path.
3) Create a DirectorySearcher object and then assign the SearchRoot of the object to the DirectoryEntry object.
Note: for some reason if i pass the DirectoryEntry object as a parameter to the constructor of the DirectorySearcher it does not work.
4) Add a filter to the DirectorySearcher object for the string "(&(objectClass=user) (cn=" + UserName + "))" ... and the UserName is the id of the user you need to validate at the end of the string.
5) Add another filter to the DirectorySearcher object for the sAMAccountName as "(sAMAccountName=" + UserName + ")".
6) Then create a SearchResultCollection object and assign the result of the FindAll or FindOne method result of the DirectorySearcher object.
Ex:
DirectoryEntry DE = new DirectoryEntry();
DirectorySearcher DS = new DirectorySearcher();
DS.SearchRoot = DE;
DS.Filter = "(&(objectClass=user) (cn=" + UserName + "))";
DS.Filter = "(sAMAccountName=" + UserName + ")";
SearchCollection searchResult = DE.FindOne(); //Can also use DE.FindAll();
7) If you just need to ensure the user exists, then check the count of searchResult.
8) Else you would have to add additional statements to handle the PropertiesToLoad method of the DirectorySearcher object.
Thats all... you are done....... :)