Skip to content

D LDAP client library using winldap on windows and openldap on other platforms

Notifications You must be signed in to change notification settings

WebFreak001/ldap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ldap

Cross platform Microsoft Active Directory client using LDAP (winldap on windows, openldap otherwise).


For secure LDAP authentication you will want to use ldapauth instead.


Openldap implementation based off dopenldap

import std.stdio;

int proto_version;

auto ldap = LDAPConnection("127.0.0.1:389"); // normal ldap connection
auto auther = LDAPAuthenticationEngine("127.0.0.1:389"); // ldap connection with fast binding and no encryption support on windows (used for password authentication)
ldap.getOption(LDAP_OPT_PROTOCOL_VERSION, &proto_version);
if (proto_version == 2)
{
	proto_version = 3;
	ldap.setOption(LDAP_OPT_PROTOCOL_VERSION, &proto_version);
	writeln("Switched to protocol version 3");
}

ldap.bind("admin@localhost", "");

auto arr = ldap.search("OU=data,DC=data,DC=local",
		LDAPSearchScope.subTree, "(|(objectClass=contact)(objectClass=user))", ["l"]); // find all users & contacts

writefln("Found %s results", arr.length);
foreach (r; arr)
{
	writeln(r.distinguishedName); // print path of contact
	foreach (k, v; r.attributes)
	{
		writef("%s = %s", k, v); // prints location of contacts (because of ["l"] argument above)
	}
}
writeln("Done");

assert(!auther.check("non valid user", "non valid password"));
assert(auther.check("admin", ""));

About

D LDAP client library using winldap on windows and openldap on other platforms

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages