【发布时间】:2020-10-11 09:56:08
【问题描述】:
我正在尝试将 .NET Core 3.1 API 连接到在 docker (dwimberger/ldap-ad-it) (configuration) 中运行的 LDAP:
dn: dc=wimpi,dc=net
objectclass: top
objectclass: domain
dc: wimpi
dn: ou=users,dc=wimpi,dc=net
ou: users
objectclass: organizationalUnit
objectclass: top
dn: uid=test,ou=users,dc=wimpi,dc=net
uid: test
objectcategory: User
cn: Test User
sn: test
memberof: admin
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: simulatedMicrosoftSecurityPrincipal
samaccountname: test
userpassword: secret
dn: ou=roles,dc=wimpi,dc=net
ou: roles
objectclass: top
objectclass: organizationalUnit
dn: cn=admin,ou=roles,dc=wimpi,dc=net
member: uid=test,ou=users,dc=wimpi,dc=net
cn: admin
objectclass: top
objectclass: groupOfNames
You can connect to the server now
URL: ldap://127.0.0.1:10389
User DN: uid=admin,ou=system
Password: secret
LDAP server started in 2187ms
这是我的连接代码:
public User Login(string userName, string password)
{
try
{
using (DirectoryEntry entry = new DirectoryEntry("LDAP://127.0.0.1:10389/DC=wimpi,DC=net", "cn=admin,ou=roles,dc=wimpi,dc=net", "secret"))
{
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
var all = searcher.FindAll();
}
}
}
catch (Exception ex)
{
}
return null;
}
但我遇到了一个错误
指定了无效的 dn 语法
在我看到的扩展错误消息中
给定的 DN 不正确:NTLM (0x4E 0x54 0x4C 0x4D) 无效
怎么了?
谢谢
【问题讨论】:
-
检查:配置中显示的用户 DN:uid=admin,ou=system 与连接代码中的 DN 不匹配:cn=admin,ou=角色,dc=wimpi,dc=net
-
好的,所以
uid=admin,ou=system,dc=wimpi,dc=net应该可以了,对吧?它没有:(
标签: c# .net active-directory ldap