/// <summary> Constructs an LdapSearchConstraints object initialized with values /// from an existing constraints object (LdapConstraints /// or LdapSearchConstraints). /// </summary> public LdapSearchConstraints(LdapConstraints cons) : base(cons.TimeLimit, cons.ReferralFollowing, cons.getReferralHandler(), cons.HopLimit) { InitBlock(); LdapControl[] lsc = cons.getControls(); if (lsc != null) { LdapControl[] generated_var = new LdapControl[lsc.Length]; lsc.CopyTo(generated_var, 0); setControls(generated_var); } System.Collections.Hashtable lp = cons.Properties; if (lp != null) { Properties = (System.Collections.Hashtable)lp.Clone(); } if (cons is LdapSearchConstraints) { LdapSearchConstraints scons = (LdapSearchConstraints)cons; serverTimeLimit = scons.ServerTimeLimit; dereference = scons.Dereference; maxResults = scons.MaxResults; batchSize = scons.BatchSize; } // Get a unique connection name for debug }
public static LdapWhoAmIResponse WhoAmI(this LdapConnection conn, LdapConstraints cons = null) { var result = conn.ExtendedOperation(new LdapWhoAmIOperation(), cons); if (result is LdapWhoAmIResponse whoami) { return(whoami); } return(new LdapWhoAmIResponse(result.Message)); }
public ILdapConnection GetConnection() { if (!HasConnectionInfo()) { return(null); } var constraints = new LdapConstraints { ReferralFollowing = true }; var connection = new LdapConnection() { SecureSocketLayer = _ldapSettings.UseSsl, Constraints = constraints }; connection.Connect(_ldapSettings.Server, _ldapSettings.Port); connection.Bind(_ldapSettings.Username, _ldapSettings.Password); return(connection); }
public static void Main(String[] args) { if (args.Length != 6) { Console.Error.WriteLine("Usage: mono SimplePassword <host Name> " + "<port number> <login dn> <password> <user dn>" + " <new user password>"); Console.Error.WriteLine("\n Example: mono SimplePassword Acme.com 389" + " \"cn=Admin,o=Acme\" secret\n" + " \"cn=JSmith,ou=sales,o=Acme\" userPWD"); Environment.Exit(1); } int ldapVersion = LdapConnection.Ldap_V3; String ldapHost = args[0]; int ldapPort = int.Parse(args[1]); String loginDN = args[2]; String password = args[3]; String userDN = args[4]; String userPWD = args[5]; /* Simple Password control. There is no value associated with this control, * just an OID and criticality. Setting the criticality to TRUE means the * server will return an error if it does not recognize or is unable to * perform the control. */ LdapControl cont = new LdapControl(simplePassOID, true, null); LdapConstraints lcons = new LdapConstraints(); lcons.setControls(cont); LdapConnection lc = new LdapConnection(); try { // connect to the server lc.Connect(ldapHost, ldapPort); // bind to the server lc.Bind(ldapVersion, loginDN, password); // Modify the 'userpassword' attribute, with the Simple // Password control. LdapModification[] modifications = new LdapModification[1]; LdapAttribute sPassword = new LdapAttribute("userPassword", userPWD); modifications[0] = new LdapModification(LdapModification.REPLACE, sPassword); lc.Modify(userDN, modifications, lcons); Console.WriteLine("Your Simple password has been modified."); lc.Disconnect(); } catch (LdapException e) { Console.Error.WriteLine("SimplePassword example failed"); Console.Error.WriteLine("Error: " + e.ToString()); Environment.Exit(1); } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } Environment.Exit(0); }