ldap 0.2.0

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


To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

ldap

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

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",
		LDAP_SCOPE_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", ""));
Dependencies:
none
System dependencies:
On Windows you need to compile your program with --arch=x86_64 or --arch=x86_mscoff for linking to work.
Versions:
0.2.0 2018-Jun-15
0.1.0 2017-Mar-16
~master 2018-Aug-09
Show all 3 versions
Download Stats:
  • 0 downloads today

  • 1 downloads this week

  • 1 downloads this month

  • 15 downloads total

Score:
0.5
Short URL:
ldap.dub.pm