Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何匿名访问windows Active Directory?_Java_Ldap_Jndi - Fatal编程技术网

Java 如何匿名访问windows Active Directory?

Java 如何匿名访问windows Active Directory?,java,ldap,jndi,Java,Ldap,Jndi,在我的JavaWeb(JBoss)应用程序中,我需要从Active Directory获取数据。基本上,我知道员工的用户ID(windows登录ID),我需要知道他/她的办公室电话号码。我认为唯一包含员工手机的地方是Windows Active Directory。因此,我尝试了一些示例java代码,并尝试访问Active Directory。下面是一个示例代码() 我们可以看到,为了在active directory中查询用户的数据,我需要用户名和密码,但不可能获取所有用户的密码。我还尝试将“

在我的JavaWeb(JBoss)应用程序中,我需要从Active Directory获取数据。基本上,我知道员工的用户ID(windows登录ID),我需要知道他/她的办公室电话号码。我认为唯一包含员工手机的地方是Windows Active Directory。因此,我尝试了一些示例java代码,并尝试访问Active Directory。下面是一个示例代码()

我们可以看到,为了在active directory中查询用户的数据,我需要用户名和密码,但不可能获取所有用户的密码。我还尝试将“password”设置为“none”,尝试使用匿名访问,但不起作用。 有人知道是否可以匿名访问Active directory吗?在asp.net中,我被告知,不提供用户id和密码就可以访问active directory。我想知道它也应该在Java中工作。我感谢任何帮助或例子。非常感谢

  • 如今,允许匿名登录ldap服务器是非常少见的
  • 如果1(部分)被允许,请询问Active Directory服务器的管理员
  • 你不需要拥有每个用户的密码就可以访问任何人的电话号码;尝试使用专门为您的web应用程序设置的单个帐户来模拟您的JBoss应用程序,该帐户仅具有足够的权限来阅读您需要的内容
  • 在进行任何LDAP编程之前,请使用一个好的LDAP编辑器来查看是否可以访问所需的内容。试试看

  • 但是,为什么可以在asp.net web应用程序中访问?asp.net中的C+和java之间有什么区别吗?还是asp.net中使用的对象和java中使用的对象?我向公司的.net开发人员询问了源代码,似乎可以不使用服务器绑定(通过使用用户ID和密码)从active directory获取员工数据。所以我想知道可能有一种类似于.net中使用的方法。有什么想法吗?客户是否使用IE作为浏览器?因为IE可能会将安全令牌传递给承载ASP.NET应用程序的IIS(以特定的MS方式)。如果DC信任IIS,则可授予其特殊权利。这也是一种通过Kerberos实现的“自动登录”(需要大量工作)。使用3)并让JBoss应用程序登录到广告中,询问所需的任何信息。电话号码通常不是“内联网意义上”的一个大秘密。是的,我们公司正在使用IE10和windows 7,不确定我是否理解你的意思,这是否意味着带有IIS的asp.net web应用可以毫无问题地访问Active Directory?如果是这种情况,.net和java在access广告中确实有不同之处,那么我的java web应用程序将使用JBoss 5以及Seam和Hibernate。您能否更详细地介绍如何使用“JBoss应用程序登录广告并询问所需信息”获取手机。谢谢,
    public ActiveDirectory(String username, String password, String domainController) {
        properties = new Properties();        
     
        properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        properties.put(Context.PROVIDER_URL, "LDAP://" + domainController);
        properties.put(Context.SECURITY_PRINCIPAL, username + "@" + domainController);
        properties.put(Context.SECURITY_CREDENTIALS, password);
     
        // initializing active directory LDAP connection
        try {
            dirContext = new InitialDirContext(properties);
        } catch (NamingException e) {
            LOG.severe(e.getMessage());
        }
     
        // default domain base for search
        domainBase = getDomainBase(domainController);
     
        // initializing search controls
        searchCtls = new SearchControls();
        searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        searchCtls.setReturningAttributes(returnAttributes);
    }