Asp.net LDAP用户属性请求返回异常结果
在验证用户是否存在后,我正在努力使用LDAP从AD返回用户详细信息。 我使用一个简单的auth方法,如下所示:Asp.net LDAP用户属性请求返回异常结果,asp.net,vb.net,ldap,Asp.net,Vb.net,Ldap,在验证用户是否存在后,我正在努力使用LDAP从AD返回用户详细信息。 我使用一个简单的auth方法,如下所示: Function AuthenticateUser(path As String, user As String, pass As String) As Boolean Dim de As New DirectoryEntry(path, user, pass, AuthenticationTypes.Secure) Try Dim ds As Dire
Function AuthenticateUser(path As String, user As String, pass As String) As Boolean
Dim de As New DirectoryEntry(path, user, pass, AuthenticationTypes.Secure)
Try
Dim ds As DirectorySearcher = New DirectorySearcher(de)
Dim result As SearchResult = ds.FindOne()
If result Is Nothing Then Return False
'>>DEBUG OUTPUTS ONLY:
displayName.Text = result.GetDirectoryEntry().Properties.Item("distinguishedName").Value
displayName.Text += result.GetDirectoryEntry().Properties("name").Value
Return True
Catch
Return False
End Try
End Function
问题是“DifferentizedName”返回“DC=our domain,DC=co,DC=uk”
而“name”只返回“我们的域”,而不是刚刚经过身份验证的用户的名称
注意:displayName.text输出仅用于调试目的
我尝试了各种请求组合,但似乎没有返回用户详细信息
ETA:对安全警察说:这一切都在https连接中,我不会用明文发送密码
1. Dim de As New DirectoryEntry(path, user, pass, AuthenticationTypes.Secure)
2. Try
3. Dim ds As DirectorySearcher = New DirectorySearcher(de)
4. Dim result As SearchResult = ds.FindOne()
第1行基本上是创建一个DirectoryEntry
元素,该元素引用路径中的对象。用户名
和密码
参数的唯一用途是访问路径
所指的任何实体
由于您当前拥有一些东西,您将绑定到域,而不是用户(但您有权作为该用户连接到域)
然后,在第3行中,创建一个。但是您正在使用的构造函数只是说在de
处作为搜索的根(正如我们所建立的,它只是域)。你还没有做任何事情来搜索域内的特定用户-他们可以连接执行几乎任何可以想象的搜索
您可能想做的是查看DirectorySearcher的重载,并提供一个筛选器参数,将搜索限制为仅限于用户。我不知道用户
参数的形式是什么-如果是,比如说,以用户主体名称(user@domain
),您可以尝试指定以下过滤器:
Dim ds As DirectorySearcher = New DirectorySearcher(de,"(userPrincipalName=" + user + ")")
如果您只有一个用户名,则需要搜索sAMAccountName
。如果您有一个旧样式的域名(domain\user
),那么通常您希望在\
上拆分该域名,放弃该域名,然后仍然在sAMAccountName
上搜索
有关构造筛选器参数的一些帮助(但不是太多!)可以在中找到。与“FindOne”而不是“FindAll”有关的内容?好吧,也许吧,但我只想找到一个。。我认证的用户?!你的path
参数是什么?path是要登录的域(我们有多个广告服务器/域)是的,我想可能是这样的-因为它只返回非常有限的域信息。我已经在DirectorySearcher中添加了“(sAMAccountName=“+user+”),现在一切都好了!!谢谢你!非常地不过,我可能说得太早了。似乎我能检索到的唯一属性是“name”@DarkcatStudios-您是否尝试将更多属性添加到PropertiesToLoad
和/或切换到接受这些属性的?