AD返回 8009030C: LdapErr: DSID-0C09043E,注释:AcceptSecurityContext 错误,数据 0,vece

3

我使用Java的LdapContext来验证一个AD服务器。在Windows7 Home Basic、Enterprise和Professional版本上运行良好。但是当客户端运行在Windows7 Ultimate和Vista Ultimate上时,AD会抛出结果代码49。 这两个操作系统有什么问题吗?我该如何解决?


你能提供更多细节吗?这些计算机是否在域中? - JPBlanc
1个回答

4

错误49是无效的凭据。常见的错误是使用Windows登录名(例如JohnS)而不是LDAP DN(例如cn=John Smith,ou=Users,dc=example,dc=com)。AD也可能接受用户主体名称,例如johns@example.com。


此外,AD 中的默认容器 Users 实际上是 CN=Users 而不是你可能认为的 OU=Users。 - geoffc
谢谢。但是为什么我可以在Windows7家庭版上使用Windows登录名,但无法在Windows7终极版上使用它? - tangjie
@tangjie:我不认为问题表现与您使用的Windows版本有关...使用网络嗅探器,例如MS Network Monitor或Wireshark查看实际情况和差异。 - Kirill Kovalenko
我的同事已经找到了原因:Win7 Ultimate使用NTLM V2。如果我们将其更改为NTLM V1,那就没问题了。您可以添加[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "lmcompatibilitylevel"=dword:00000000(使用NTLM V2的00000003)。 - tangjie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接