У меня есть активный поиск по каталогу функция:Возвращаясь несколько значений из вызова функции
Function GetAdInfo(ByVal ADDN As String, ByVal ADCommonName As String, ByVal ADGivenName As String, ByVal ADStaffNum As String, ByVal ADEmail As String, ByVal ADDescription As String, ByVal ADTelephone As String, ByVal ADOffice As String, ByVal ADEmployeeID As String) As String
Dim netBIOSname As String = Me.Request.LogonUserIdentity.Name
Dim sAMAccountName As String = netBIOSname.Substring(netBIOSname.LastIndexOf("\"c) + 1)
Dim defaultNamingContext As String
Using rootDSE As DirectoryServices.DirectoryEntry = New DirectoryServices.DirectoryEntry("LDAP://RootDSE")
defaultNamingContext = rootDSE.Properties("defaultNamingContext").Value.ToString()
End Using
Using searchRoot As DirectoryServices.DirectoryEntry = _
New DirectoryServices.DirectoryEntry("LDAP://" + defaultNamingContext, _
"kingkong", "kingkong", DirectoryServices.AuthenticationTypes.Secure)
Using ds As DirectoryServices.DirectorySearcher = New DirectoryServices.DirectorySearcher(searchRoot)
ds.Filter = String.Format("(&(objectClass=user)(objectCategory=person)(sAMAccountName={0}))", sAMAccountName)
Dim sr As DirectoryServices.SearchResult = ds.FindOne()
ADDN = (sr.Properties("displayName")(0).ToString())
ADCommonName = (sr.Properties("cn")(0).ToString())
ADGivenName = (sr.Properties("givenname")(0).ToString())
ADStaffNum = (sr.Properties("sn")(0).ToString())
ADEmail = (sr.Properties("mail")(0).ToString())
ADDescription = (sr.Properties("description")(0).ToString())
ADTelephone = (sr.Properties("telephonenumber")(0).ToString())
ADOffice = (sr.Properties("physicalDeliveryOfficeName")(0).ToString())
End Using
End Using
Return ADDN
Return ADCommonName
Return ADGivenName
Return ADStaffNum
Return ADEmail
Return ADDescription
Return ADTelephone
Return ADOffice
Функция, кажется, работает, как и когда я ставлю точку останова в конце концов, такие переменные, как Addn действительно имеет правильный значения.
Тогда я вызываю функцию в моей Page_Load так:
GetAdInfo(ADDN, ADCommonName, ADGivenName, ADStaffnum, ADEmail, ADDescription, ADTelephone, ADOffice, ADEmployeeID)
Тогда я пытаюсь response.write одну из Варс, чтобы проверить, как это:
Response.Write(ADDN)
Но значение пустой.
Пожалуйста, кто-нибудь скажет мне, что я делаю неправильно. Спасибо
Когда вы говорите, передавая их по ссылке, вы имеете в виду вот так: ADGivenName = (sr.Properties («givenname») (0) .ToString()) и удалить все Return? – Phil
Я имею в виду изменение байла на байре, хотя я бы не рекомендовал это как решение. – Paddy