java - how to know user is active or inactive in Active Directory -
i have connected active directory ,so validate user name, how can know user active or inactive in ad?
sample code:
private properties properties; private dircontext dircontext; private searchcontrols searchctls; private string[] returnattributes = { "samaccountname", "givenname", "cn", "mail"}; private string domainbase; private string basefilter = "(&((&(objectcategory=person)(objectclass=user)))"; public activedirectory(string username, string password, string domaincontroller,string url) { properties = new properties(); properties.put(context.initial_context_factory, "com.sun.jndi.ldap.ldapctxfactory"); properties.put(context.provider_url, url); properties.put(context.security_authentication,"simple"); properties.put(context.security_principal,username+"@"+domaincontroller); properties.put(context.security_credentials, password); //initializing active directory ldap connection try { dircontext = new initialdircontext(properties); system.out.println("dircontext: "+dircontext); } catch (namingexception e) { e.printstacktrace(); log.severe(e.getmessage()); } catch (exception e) { e.printstacktrace(); } domainbase = getdomainbase(domaincontroller); //initializing search controls searchctls = new searchcontrols(); searchctls.setsearchscope(searchcontrols.subtree_scope); searchctls.setreturningattributes(returnattributes); } public namingenumeration<searchresult> searchuser(string searchvalue, string searchby, string searchbase) throws namingexception { system.out.println("search value :: "+searchvalue); system.out.println("search base111 :: "+ ((null == searchbase) ? domainbase : getdomainbase(searchbase))); string filter = getfilter(searchvalue, searchby); string base = (null == searchbase) ? domainbase : getdomainbase(searchbase); // eg.: "dc=myjeeva,dc=com"; system.out.println("this.dircontext : "+this.dircontext); return this.dircontext.search(base, filter, this.searchctls); } private string getfilter(string searchvalue, string searchby) { string filter = this.basefilter; if(searchby.equals("email")) { filter += "(mail=" + searchvalue + "))"; } else if(searchby.equals("username")) { filter += "(samaccountname=" + searchvalue + "))"; } system.out.println("filter : "+filter); return filter; } i have done search using this.dircontext.search(base, filter, this.searchctls);
how can know user active or inactive?
i found google active users (!(useraccountcontrol:1.2.840.113556.1.4.803:=2)) , deactive users (useraccountcontrol:1.2.840.113556.1.4.803:=2) how implements 2 in java code.
thank you, hint worked , managed read active , inactive users.
i read active users active directory filter:
(&(objectclass=user)(objectcategory=person)(!(useraccountcontrol:1.2.840.113556.1.4.803:=2))) and inactive users filter:
(&(objectclass=user)(objectcategory=person)(useraccountcontrol:1.2.840.113556.1.4.803:=2))
Comments
Post a Comment