下载的连接:http://www.ilex.fr/openldap/install-openldap-windows.exe

解决方案 »

  1.   

    ldap(light directory access protocol)
    我的一个同事用过linux平台下的,好象就是象连接数据库一样的建立连接,然后存取数据就可以了;搜一搜了;如果你也可以用linux下的,我可以问清楚告你。
      

  2.   

    to(netskychw):你好,我重新下载了一个for windows的服务器,安装好后可以用了,但是在用java访问时老出错
        public boolean connect(){
               String  account="Manager";
               String  password="123456";
               String  root="dc=sweet,dc=com";  //root
               Hashtable  env  =  new  Hashtable();
               env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory");
               env.put(Context.PROVIDER_URL,  "ldap://192.168.123.166:389/"  +  root);
               env.put(Context.SECURITY_AUTHENTICATION,  "simple");
               env.put(Context.SECURITY_PRINCIPAL,  "uid="  +  account  +  ","  +  root);
               env.put(Context.SECURITY_CREDENTIALS,  password);
               DirContext  ctx  =  null;
               try
               {
                       ctx  =  new  InitialDirContext(env);
                       System.out.println("认证成功");
                        return true;
               }
               catch(javax.naming.AuthenticationException  e)
               {
                       System.out.println("认证失败");
               }
               catch(Exception  e)
               {
                       System.out.println("认证出错:");
                       e.printStackTrace();
               }
               if(ctx  !=  null)
               {
                       try
                       {
                               ctx.close();
                               return false;
                       }
                       catch  (NamingException  e)
                       {
                               //ignore
                       }
               }        return false;
        }
    调用该类的connect方法后后台打印出认证失败。请问我该如何访问才行呢,是不是我的配置有问题阿?
      

  3.   

    你的账户之类都是默认的吧?
    你的账户应该是:
    String  account="cn=Manager";
      

  4.   

    改这行代码: env.put(Context.SECURITY_PRINCIPAL,  "uid="  +  account  +  ","  +  root);--------------------------------import java.util.*;
    import javax.naming.Context;
    import javax.naming.NamingException;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;public class LDAPTest {
      public LDAPTest() {
      }  public static void main(String[] args) {
        LDAPTest LDAPTest1 = new LDAPTest();
        String root = "dc=mywebmail,dc=com"; //root    Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://192.168.9.1:389/" + root);
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=mywebmail,dc=com");//关键是这句
        env.put(Context.SECURITY_CREDENTIALS, "s");//我改了密码为s    DirContext ctx = null;
        try {
          ctx = new InitialDirContext(env);
          System.out.println("认证成功");
        }
        catch (javax.naming.AuthenticationException e) {
          e.printStackTrace();
          System.out.println("认证失败");
        }
        catch (Exception e) {      System.out.println("认证出错:");
          e.printStackTrace();
        }    if (ctx != null) {
          try {
            ctx.close();
          }
          catch (NamingException e) {
            //ignore
          }
        }
        System.exit(0);
      }}