사용자 정보를 얻기 위해 활성 디렉토리로 작업하려고합니다. 대부분의 경우 작동합니다. 문제는 사용자가 마지막으로 로그온 한 날짜를 얻지 못하는 것입니다. 누구든지 어떤 제안이 있습니까? 내 코드는 다음과 같습니다 :사용자가 Active Directory에서 마지막으로 로그온하는 방법
Public Shared Function GetUsersByUsername(ByVal Username As String) As ADUser
Dim myUser As New ADUser
Dim oroot As DirectoryEntry = New DirectoryEntry("GC://ldap.myCompany.com")
Dim osearcher As DirectorySearcher = New DirectorySearcher(oroot)
Dim result As SearchResult
osearcher.Filter = String.Format("(&(SAMAccountName={0}))", Username)
osearcher.PropertiesToLoad.Add("cn")
osearcher.PropertiesToLoad.Add("SAMAccountName") 'Users login name
osearcher.PropertiesToLoad.Add("givenName") 'Users first name
osearcher.PropertiesToLoad.Add("sn") 'Users last name
osearcher.PropertiesToLoad.Add("mail") 'Email address
osearcher.PropertiesToLoad.Add("accountExpires") 'expiration date
result = osearcher.FindOne
Try
Dim userPath As String() = result.Path.ToString.Split(New Char() {","c})
Dim parsedString As String
Dim User As DirectoryEntry
Dim expirationDate As String
User = result.GetDirectoryEntry()
myUser.UserID = result.Properties("cn").Item(0)
myUser.EmailAddress = result.Properties("mail").Item(0)
myUser.FirstName = result.Properties("givenName").Item(0)
myUser.LastName = result.Properties("sn").Item(0)
expirationDate = result.Properties("accountExpires").Item(0)
If (isAccountLocked(User) = True) Then
myUser.Status = ADUser.AccountStatus.Locked
ElseIf (isAccountEnabled(User) = False) Then
myUser.Status = ADUser.AccountStatus.Disabled
ElseIf (isAccountExpired(expirationDate) = True) Then
myUser.Status = ADUser.AccountStatus.Expired
Else
myUser.Status = ADUser.AccountStatus.Active
End If
parsedString = userPath((userPath.Length - 3))
myUser.Domain = parsedString.Substring(3, parsedString.Length - 3)
Catch ex As Exception
Return Nothing
End Try
Return myUser
End Function
응답 마크를 보내 주셔서 감사합니다. 나는 광고를 처음 사용하기 때문에, 내가 무엇을하고 있는지 정확히 알지 못한다. 주로 언덕 위에있었습니다. 어쨌든 lastLogon 속성을 시도했지만 항상 null이 반환됩니다. 저는 매일 계정에 로그인하여 계정을 테스트하므로 가치가 있다는 것을 알고 있습니다. – jason
몇 년 전에 내부 전화 번호부에 LDAP를 사용했는데 약간의 불편을 겪었습니다. 이 녀석의 위치는 진짜로 유용 하 그가 lastLogon가 너를 위해 일하지 않을지도 모른 까 왜에 어떤 정보가 있는다 : http://www.computerperformance.co.uk/ezine/ezine85.htm – markp3rry
저것이 도움이되면 upvote에 잊지 말라 :) – markp3rry