none
连接AD的LDAP验证允许账号空密码通过 RRS feed

  • 常规讨论

  • public boolean validateUserForAD(String username,String password){
      String host = "adserver";
      String port = "389";
      String domain = "domain2012";
       {
       Hashtable env = new Hashtable();
       DirContext ctx;

       String user = domain + "\\" + username;
       String passwd = password;

       env.put(Context.SECURITY_AUTHENTICATION, "simple");
       env.put(Context.SECURITY_PRINCIPAL, user);
       env.put(Context.SECURITY_CREDENTIALS, passwd);

       String url = new String("ldap://" + host + ":" + port);
       env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");

       env.put(Context.PROVIDER_URL, url);

       try {
        ctx = new InitialDirContext(env);
        ctx.close();
        System.out.println("验证成功!");
        return true;
       } catch (NamingException err) {
        err.printStackTrace();
        System.out.println("验证失败!");
        return false;
       }
      }
     }

    只要输入账号参数(包括不存在的账号),使用空密码就能通过认证,不使用空密码验证符合认证要求,请大神解决

    2014年9月25日 12:00

全部回复

  • 你好,

    >>只要输入账号参数(包括不存在的账号),使用空密码就能通过认证,不使用空密码验证符合认证要求,

    你的意思是上面那个代码不需要密码也能通过LDAP验证去访问AD? 如果是这样的话, 账户验证之后能够访问AD资源吗?

    由于这个涉及到代码的问题,为了获得更好的帮助,你可以在MSDN论坛里问一下。

    MSDN论坛

    http://social.msdn.microsoft.com/Forums/zh-CN/home

    2014年9月30日 2:45
    版主
  • 你好,代码只是做账号登陆验证,不访问AD资源,谢谢回复,我把问题转到MSDN

    2014年9月30日 5:34