3

我在网上搜索过,但找不到任何解决方案。
另外,我尝试了很多不同的解决方案,但都没有奏效。
请在看待这种情况时保持开放的心态。

要求:

  • 应该使用 Java/J2SE(控制台、GUI 等)。
  • 不要只使用任何外部或第三方 jar/包 JNDI。
  • 不要询问或存储用户密码。
  • 从 LDAP 中的 Windows 登录用户获取电子邮件。

假设:

  • 不需要深入研究 LDAP 服务器的细节,它可以在其他语言上工作,如 VBS/.Net/等。但不是Java。

笔记:

  • VBS 甚至可以要求其他用户(不是登录的用户)工作。

    我不知道 LDAP 服务器配置,但上面的信息对于那些知道它的人来说应该是有意义的。

一段运行良好的 VBS 代码:

Dim objSysInfo, objUser<br>
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
MsgBox objUser.mail

我怎样才能让它工作?

4

2 回答 2

2

这里的问题不是 JNDI 部分,它以与ADSystemInfo.UserName. 您可以查看是否System.getProperty("user.name")返回正确的东西,否则您会进入一些 ActiveX Bridge 的东西来模拟您发布的 VB 代码。

LDAP 部分只是非常直接地映射到 JNDI,你不应该对那部分有任何问题。

于 2013-04-14T00:15:45.407 回答
1

Windows 和 VBS API 使用“SASL GSSAPI 机制来实现单点登录 (SSO)”从客户端到 Active Directory 服务器。

有许多版本的 Windows Active Directory 和无数不同的方法,可以在您的实现中设置各种参数。所以你的成功可能会有所不同。

我发现一篇文章可能会帮助您指出正确的方向: http ://dmdaa.wordpress.com/2010/04/10/utilize-sasl-gssapi-mechanism-to-achieve-single-sign-on-sso-对于-jndi-ldap-client/

于 2013-04-17T09:36:58.643 回答