1

嗨,当我以下面提到的方式从多米诺设计师那里获得用户名时

    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    String userName=session.getUsername(); 
    system.out.println("UserName="+uesrName);

我以“CN=example/OU=Server/O=company”的格式获取用户名,但我想使用通常的格式,例如 example@abc.com。谁能告诉我如何用 Java 获取它。有吗以预期格式获取用户名的任何其他方法。请帮助。如果提供一些参考,那就太好了。

4

1 回答 1

1

example@abc.com 不是用户名,而是电子邮件地址(如果相应地配置了服务器,则可以在用户名字段中用于登录 Webservices / traveler / ldap / 等)。

有多种方法可以获取给定用户名的电子邮件地址,最简单的可能是使用 Directory-Class 及其方法“lookupNames”。

以下是从 Designer 帮助中获取的示例:

  Session session = getSession();
  AgentContext agentContext = session.getAgentContext();
  Directory dir = session.getDirectory("NameOfYourServer");
  String userName=session.getUsername(); 
  DirEntryCollection direc = dir.lookupNames("($Users)",userName,"email");
  DirEntry dirent = direc.getFirstEntry()
  while (dirent != null) {
    String name = dirent.getItemValue("InternetAddress");
    System.out.println(InternetAddress);
    dirent = direc.getNextEntry(); }

Designer 帮助可以在很多地方找到(如果安装了 Designer,则本地安装)或例如这里

于 2014-03-14T12:31:50.530 回答