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