2

正確な LDAP URL を使用してユーザーを検索する方法を理解しています

LDAP://domain/CN=Username,OU=Users,DC=domain,DC=com

しかし、特定の OU を調べずにユーザーを見つける必要がある場合はどうでしょう。ドメイン全体を検索するにはどうすればよいですか?

4

2 に答える 2

4

.NET 3.5 以降を使用している場合は、PrincipalSearcherクラスを確認する必要があります。

' create your domain context
Dim ctx As New PrincipalContext(ContextType.Domain)

' define a "query-by-example" principal - here, we search for a UserPrincipal 
' and with the first name (GivenName) of "Bruce" and a last name (Surname) of "Miller"
Dim qbeUser As New UserPrincipal(ctx)
qbeUser.GivenName = "Bruce"
qbeUser.Surname = "Miller"

' create your principal searcher passing in the QBE principal    
Dim srch As New PrincipalSearcher(qbeUser)

' find all matches
For Each found As var In srch.FindAll()
    ' do whatever here - "found" is of type "Principal" - it could be user, group, computer.....          
Next

まだお読みでない場合は、.NET Framework 3.5 でのディレクトリ セキュリティ プリンシパルの管理に関するMSDN の記事を必ずお読みくださいSystem.DirectoryServices.AccountManagement。または、System.DirectoryServices.AccountManagement 名前空間に関する MSDN ドキュメントを参照してください。

もちろん、必要に応じて、作成した「例によるクエリ」ユーザー プリンシパルに他のプロパティを指定することもできます。

  • DisplayName(通常: 名 + スペース + 姓)
  • SAM Account Name- Windows/AD アカウント名
  • User Principal Name- "username@yourcompany.com" スタイル名

の任意のプロパティを指定し、UserPrincipalそれらを の「例によるクエリ」として使用できますPrincipalSearcher

または、特定のユーザーだけを見つけたい場合は、次を試してください。

' find a user
Dim user As UserPrincipal = UserPrincipal.FindByIdentity(ctx, "SomeUserName")

' do something here....     
If user IsNot Nothing Then
   . .....
End If
于 2012-04-04T19:23:52.723 に答える
0

LDAPパスからOU構造を省略してください。これにより、ドメインのルートに検索が設定されます。

LDAP://DC=domain,DC=com

フィルタを使用して特定のユーザーを検索します。

(&(objectClass=User)(cn=" & susername & "))
于 2012-04-04T18:17:29.303 に答える