Class UserData
Allgemeines nGuid als Int64 = 0
Allgemeines csLogin als Schnur = ""
Allgemeines csCommonName als Schnur = ""
Allgemeine cUserGroups als Collections.Generic.List (der Schnur)
Enden-Kategorie
Schwaches m_cUsersColl als Collections.Generic.SortedList (der Schnur, UserData)
VorReadADUsers ()
Wenn Me.dc_address.Text = "" dann
MsgBox („Einsatzbedieneradresse“)
Unterseeboot herausnehmen
Beenden wenn
Wenn Me.dc_path.Text = "" dann
MsgBox („Weg des Einsatzes LDAP“)
Unterseeboot herausnehmen
Beenden wenn
Wenn Me.dc_flt.Text = "" dann
MsgBox („Einsatzfilter“)
Unterseeboot herausnehmen
Beenden wenn
m_cUsersColl = neues Collections.Generic.SortedList (der Schnur, UserData)
m_cUsersColl.Clear ()
Schwaches oRoot als DirectoryEntry = neues DirectoryEntry („LDAP: /“ u. dc_address. Text u. „/“ u. dc_path. Text)
Schwaches oSearcher als DirectorySearcher = neues DirectorySearcher (oRoot)
Schwache oResults als SearchResultCollection
Schwaches oResult als SearchResult
oSearcher.PageSize = 5000
Versuch
Schwaches nUserCount = 0
oSearcher.Filter = dc_flt. Text
oSearcher.PropertiesToLoad.Add („uid“)
oSearcher.PropertiesToLoad.Add („KN“)
oSearcher.PropertiesToLoad.Add („sAMAccountName“)
oSearcher.PropertiesToLoad.Add („memberOf“)
oResults = oSearcher.FindAll ()
Für jedes oResult in den oResults
Wenn nicht oResult.GetDirectoryEntry (). Eigenschaften („KN“). Wert = "" dann
nUserCount = nUserCount + 1
Schwaches cUserData als UserData = neues UserData
cUserData.nGuid = oResult.GetDirectoryEntry (). Eigenschaften („uid“). Wert
cUserData.csCommonName = oResult.GetDirectoryEntry (). Eigenschaften („KN“). Wert
cUserData.csLogin = oResult.GetDirectoryEntry (). Eigenschaften („sAMAccountName“). Wert
cUserData.cUserGroups = neue Collections.Generic.List (der Schnur)
Schwaches csGroupString als Schnur = ""
Schwaches nMemberOfCnt = 0
Für nMemberOfCnt = 0 zu oResult.GetDirectoryEntry (). Eigenschaften („memberOf“). Zählimpuls - 1
Schwaches csGroupName als Schnur = C (oResult.GetDirectoryEntry (). Eigenschaften („memberOf“) (nMemberOfCnt), Schnur)
Schwaches nStartIdx = csGroupName.IndexOf („=“, 1)
Schwaches nEndIdx = csGroupName.IndexOf („,“, 1)
csGroupString = ""
Wenn nStartIdx > 0 und nEndIdx > 0 und nEndIdx > nStartIdx dann
csGroupString = csGroupName.Substring (nStartIdx + 1, nEndIdx - nStartIdx - 1)
Beenden wenn
Wenn csGroupString <> "" dann
cUserData.cUserGroups.Add (csGroupString)
Beenden wenn
Zunächst
m_cUsersColl.Add (cUserData.csLogin, cUserData)
Beenden wenn
Zunächst
MsgBox („Suche beendete. Gefunden“ u. nUserCount u. „users.")
Fang ex als Ausnahme
MsgBox („Suche unterbrach mit Störung: “ u. ex. Mitteilung)
Enden-Versuch
Enden-Unterseeboot
|