ldap ~master

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


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

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", ""));
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.4.0 2023-Mar-27
0.3.0 2021-Mar-15
0.2.0 2018-Jun-15
0.1.0 2017-Mar-16
~master 2023-Mar-27
Show all 5 versions
Download Stats:
  • 5 downloads today

  • 5 downloads this week

  • 5 downloads this month

  • 95 downloads total

Score:
1.1
Short URL:
ldap.dub.pm