簡體   English   中英

異步獲取Active Directory用戶

[英]Get Active directory user asynchonously

如何異步查詢Active Directory。 我有一些代碼可以同步獲取用戶

    Dim UserName as string = ""
    Dim Password as string = ""
    Dim LDAPPath As String = ""
    Dim DirectoryE As DirectoryEntry = New DirectoryEntry(LDAPPath, UserName, Password)

    Dim RootDSE As DirectoryServices.DirectoryEntry = globalroot
    Dim objSearch As New System.DirectoryServices.DirectorySearcher(RootDSE)
    Dim oResult As DirectoryServices.SearchResultCollection = Nothing
    'objSearch.PropertiesToLoad.Add("uid")
    'objSearch.PropertiesToLoad.Add("cn")


    objSearch.Filter = "(&(objectcategory=user))"
    objSearch.PageSize = 500
    oResult = objSearch.FindAll
    For Each ldentry As SearchResult In oResult
        Console.WriteLine(ldentry.Properties("cn")(0).ToString)
    Next
    Console.ReadLine()

假設您正在使用.NET 4.5。 將您的代碼更改為一個返回SearchResultCollection的函數:

 Private Function GetAllUsers() As SearchResultCollection
        Dim UserName As String = ""
        Dim Password As String = ""
        Dim LDAPPath As String = ""
        Dim DirectoryE As DirectoryEntry = New DirectoryEntry(LDAPPath, UserName, Password)

        Dim RootDSE As DirectoryServices.DirectoryEntry = New DirectoryEntry("LDAP://RootDSE")
        Dim objSearch As New System.DirectoryServices.DirectorySearcher(RootDSE)
        Dim oResult As DirectoryServices.SearchResultCollection = Nothing
        'objSearch.PropertiesToLoad.Add("uid")
        'objSearch.PropertiesToLoad.Add("cn")

        objSearch.Filter = "(&(objectcategory=user))"
        objSearch.PageSize = 500
        Return objSearch.FindAll

    End Function

然后這樣稱呼它:

 Private Async Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click

        For Each ldentry As SearchResult In Await Task.Run(Function() GetAllUsers())
            Console.WriteLine(ldentry.Properties("cn")(0).ToString)
        Next
        Console.ReadLine()
    End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM