public bool ValidateUser(string username, string password)
{
try
{
LdapConnection ldap = new LdapConnection(new LdapDirectoryIdentifier(host, port));
ldap.SessionOptions.ProtocolVersion = protocolVersion;
ldap.AuthType = AuthType.Basic;
ldap.Credential = new NetworkCredential(adminUsername, adminPassword);
ldap.SessionOptions.SecureSocketLayer = secureSocket;
ldap.Bind();
ldap.AuthType = AuthType.Basic;
SearchRequest searchRequest = new SearchRequest(
baseDn,
string.Format(CultureInfo.InvariantCulture, "{0}={1}", authUid, username),
SearchScope.Subtree
);
SearchResponse searchResponse = (SearchResponse)ldap.SendRequest(searchRequest);
if (1 == searchResponse.Entries.Count)
{
//ldap.Bind(new NetworkCredential(searchResponse.Entries[0].DistinguishedName, password));
}
else
{
throw new Exception("Login failed.");
}
}
catch (Exception e)
{
//Todo: Pass error to logging framework instead of console!
Console.WriteLine(e.Message);
return false;
}
return true;
}