DirectorySearcher не работает для Windows 7 64 или 32 бит по сети - PullRequest
1 голос
/ 08 сентября 2011

У меня есть приложение, которое находится на сетевом диске.

Когда программа запускается с компьютера с XP на настольном компьютере или по сети, программа работает для любого пользователя.Когда он запускается из Win 7 на рабочем столе, он работает для всех, но когда он запускается из Win 7 по сети, он терпит неудачу для пользователей с меньшими разрешениями.Ниже приведен код.В последней строке происходит сбой «Dim searchResult As SearchResult = directorySearcher.FindOne»

Dim adpath As String = "LDAP://OU=orgOU,DC=ad,DC=orgDC,DC=edu"
Dim directoryEntry As New DirectoryEntry(adpath)
directoryEntry.AuthenticationType = AuthenticationTypes.Secure
Dim directorySearcher As New DirectorySearcher(directoryEntry)
directorySearcher.Filter = getFilter(samAccountName)
directorySearcher.SearchScope = SearchScope.Subtree
Dim searchResult As SearchResult = directorySearcher.FindOne

Может кто-нибудь сказать мне, чего не хватает в разрешениях сети?

1 Ответ

1 голос
/ 08 сентября 2011

Вы, похоже, используете привязку без сервера, попробуйте установить:

AuthenticationType = AuthenticationTypes.Secure | AuthenticationTypes.ReadonlyServer

Из документации MSDN по AuthenticationTypes.ReadOnlyServer:

Для доменных служб Active Directory этот флаг указывает, что для безсерверной привязки сервер с возможностью записи не требуется.

Также вы должны утилизировать одноразовые предметы, желательно с помощью оператора Using. Что-то вроде:

Using directoryEntry = New DirectoryEntry...

Using directorySearcher = new DirectorySearcher(...
...