public string LoginToAD(string Username, string Password)
{
//DataSet ds = new DataSet();
string username = "";
int InputLength = 1;
if (Username.Length >= InputLength && Password.Length >= InputLength)
{
string ServerLDAP = "LDAP://xxx.xxx.xxx.xxx:389/";
string BaseDN = "dc=xxx,dc=xxx,dc=xxx";
string Path = ServerLDAP + BaseDN;
DirectoryEntry de = new DirectoryEntry(Path, Username, Password);
SearchResultCollection results;
DirectorySearcher mySearcher = new DirectorySearcher(de);
mySearcher.Filter = "(&(objectClass=*)(cn=" + Username + "))";
try
{
results = mySearcher.FindAll();
#region return from LDAP
if (results.Count > 0)
{
//ถ้าค้นหาใน AD แล้วเจอ
foreach (SearchResult sResultSet in mySearcher.FindAll())
{
DirectoryEntry re = sResultSet.GetDirectoryEntry();
username = re.Properties["cn"].Value.ToString();
PropertyCollection props = re.Properties;
foreach (string propName in props.PropertyNames)
{
if (re.Properties[propName].Value != null)
{
Response.Write("<br/>"+propName + " = " + re.Properties[propName].Value.ToString());
}
else
{
Response.Write("<br/>" + propName + " = NULL");
}
}
//Session["firstname"] = re.Properties["givenNameThai"].Value;
//Session["lastname"] = re.Properties["serNameThai"].Value;
//Session["position"] = re.Properties["title"].Value;
//Page.RegisterStartupScript("alert", "<script language='javascript'>alert('count 1.')</script>");
}
//foreach (string property in de.Properties.PropertyNames)
//{
// Response.Write("\t"+property+" : "+de.Properties[property][0]);
//}
}
else
{
//กรณีค้นหาไม่ตรงกับ OU เช่นมี user นี้อยู่บน AD แต่ไม่ตรงกับ Concept ของ BaseDN
//Page.RegisterStartupScript("alert", "<script language='javascript'>alert('this account it's not staff in passport.')</script>");
}
#endregion
}
catch (Exception ex)
{
}
}
return username;
}