Аз използвам следния код, който работи, за да влезе потребител на приложение, изградено във VB.NET срещу активна директория.
Този код работи чудесно, но аз трябва да възстановя името на потребителя, фамилното име, показваното име и също така да проверя дали потребителят е част от група.
Опитах много форми на adResults.Property ("displayname"). ToString () и други подобни, но просто не мога да го накарам да работи правилно.
Някой има ли идеи как да правя това, което искам?
Ето кода, който използвам сега и благодаря предварително.
Public Function ValidateActiveDirectoryLogin(ByVal sDomain As String, ByVal sUserName As String, ByVal sPassword As String) As Boolean
Dim bSuccess As Boolean = False
Dim adEntry As New System.DirectoryServices.DirectoryEntry("LDAP://" & sDomain, sUserName, sPassword)
Dim adSearcher As New System.DirectoryServices.DirectorySearcher(adEntry)
adSearcher.SearchScope = DirectoryServices.SearchScope.OneLevel
Try
Dim adResults As System.DirectoryServices.SearchResult = adSearcher.FindOne
bSuccess = Not (adResults Is Nothing)
Catch ex As Exception
bSuccess = False
MsgBox("Error")
End Try
Return bSuccess
End Function
Отговори:
4 за отговор № 1Вижте пространството с имена System.DirectoryServices.AccountManagemment. Най- userprincipal обектът разполага с всичко необходимо и повече. Ето обяснение за това как да използвате този API.
РЕДАКТИРАНЕ: това е много по-лесно да се използва в действителност.
Dim userName = Environment.UserName
" create a domain context
Dim DC = New PrincipalContext(ContextType.Domain)
" find a user in the domain
Dim user = UserPrincipal.FindByIdentity(DC, userName)
" get the user"s groups
Dim groups = user.GetGroups()
" get the user"s first and last name
Dim firstName = user.GivenName
Dim lastName = user.SurName
" get the distinguishednames for all groups of the user
Dim groupNames = From g in groups Select g.DistinguishedName
" etc...
0 за отговор № 2
..и бързо да изхвърлите съдържанието на имената на групи (от ясния отговор на Йеронех) в списъчно поле:
ListBox1.DataSource = groupnames.ToList()