.Net - Active Directory Abfragen, weitere Fragen
Hallo Zusammen.
Im Vorraus, ich bin noch recht frisch auf .Net.
Also meine erste Frage:
Ich habe eine Windows Forms Anwendung mit einer login Form. Mittels dieser kann ich mich mit meinem Geschäftslogin an der Domäne Anmelden. Funzt super. Jetzt frag ich mich aber, ob die Forms Anwendung dauerhaft mit diesem Benutzer läuft. Ich hab das mit einer Funktion gemacht:
Aufgerufen wird das ganze bei einem Klick auf OK:
Des weitern möchte ich nun auf einer weiteren Form eine AD Abfrage machen. Bin schon seit mehreren Stunden am nachlesen und am ausprobieren. Bislang noch ohne grossem Erfolg.
Was ich möchte ist, dass ich in der Form per ComboBox die Objekte definieren kann (Benutzer, Computer, Gruppen). In einer Textbox kann man den Namen des Benutzers eingeben, oder den Login Namen, Computername oder Gruppenname. Per klick auf suchen wird nun im Hintergrund die gesamte AD durchsucht. Die ergebnisse sollen in einer ListView in verschiedenen Spalten angezeigt werden: Objekt Typ, Name, Login Name, UNC Pfad.
Auch hier versuche ich gerade, eine Funktion zusammen zu Stiefeln:
Kann mir da wer Helfen, respektive, hat das schon mal jemand gemacht und wäre so freundlich mir den Quellcode zu geben =)
Wär euch dankbar
Grüsse
aivilon
Ich habe eine Windows Forms Anwendung mit einer login Form. Mittels dieser kann ich mich mit meinem Geschäftslogin an der Domäne Anmelden. Funzt super. Jetzt frag ich mich aber, ob die Forms Anwendung dauerhaft mit diesem Benutzer läuft. Ich hab das mit einer Funktion gemacht:
Public Function ValidateActiveDirectoryLogin(ByVal strDomain As String, ByVal strUsername As String, ByVal strPassword As String) As Boolean
strUsername = My.Forms.LoginForm1.UsernameTextBox.Text
strPassword = My.Forms.LoginForm1.PasswordTextBox.Text
strDomain = My.Forms.LoginForm1.DomainTextBox.Text
Dim Success As Boolean = False
Dim dirEntry As New System.DirectoryServices.DirectoryEntry("LDAP://" & strDomain, strUsername, strPassword)
Dim Searcher As New System.DirectoryServices.DirectorySearcher(dirEntry)
dirEntry.AuthenticationType = AuthenticationTypes.Secure
Searcher.SearchScope = DirectoryServices.SearchScope.OneLevel
Try
Dim Results As System.DirectoryServices.SearchResult = Searcher.FindOne
Success = Not (Results Is Nothing)
Catch
Success = False
End Try
Return Success
End Function
Private Sub OK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OK.Click
If PasswordTextBox.Text = "KTbAe2445-qwhfaoiszd8hqwe" Then
MsgBox("Bitte geben sie ein Passwort ein!", vbOKOnly, "Passwort eingeben")
Exit Sub
End If
'Do Until ValidateActiveDirectoryLogin(strUsername, strPassword, strDomain) = True
If ValidateActiveDirectoryLogin(strUsername, strPassword, strDomain) = True Then
MsgBox("Succsess")
Else
MsgBox("Login Fehlgeschlagen", vbOKOnly, "Böser Login")
PasswordTextBox.Text = Nothing
Exit Sub
Return
End If
'Loop
Me.Close()
Form1.Opacity = 1
End Sub
Des weitern möchte ich nun auf einer weiteren Form eine AD Abfrage machen. Bin schon seit mehreren Stunden am nachlesen und am ausprobieren. Bislang noch ohne grossem Erfolg.
Was ich möchte ist, dass ich in der Form per ComboBox die Objekte definieren kann (Benutzer, Computer, Gruppen). In einer Textbox kann man den Namen des Benutzers eingeben, oder den Login Namen, Computername oder Gruppenname. Per klick auf suchen wird nun im Hintergrund die gesamte AD durchsucht. Die ergebnisse sollen in einer ListView in verschiedenen Spalten angezeigt werden: Objekt Typ, Name, Login Name, UNC Pfad.
Auch hier versuche ich gerade, eine Funktion zusammen zu Stiefeln:
Public Function FindAccount(ByVal strLogin As String, ByVal strTyp As String)
Dim dirEntry As New System.DirectoryServices.DirectoryEntry("LDAP://" & strDomain, strUsername, strPassword)
Dim dirSearcher As DirectorySearcher = New DirectorySearcher(ValidateActiveDirectoryLogin(strDomain, strUsername, strPassword))
dirSearcher.Filter = "(&(objectCategory=" & strTyp & ")(SAMAccountName=" & strLogin & "))"
dirSearcher.SearchScope = SearchScope.Subtree
Dim results As SearchResult = dirSearcher.FindOne()
Dim SubItem As ListViewItem
If strTyp = "User" Then
strTyp = "Benutzer"
End If
With Form1.ListView1.Items
SubItem = .Add(strTyp)
SubItem.SubItems.Add(System.DirectoryServices.)
End With
dirEntry.Close()
End Function
Kann mir da wer Helfen, respektive, hat das schon mal jemand gemacht und wäre so freundlich mir den Quellcode zu geben =)
Wär euch dankbar
Grüsse
aivilon
Please also mark the comments that contributed to the solution of the article
Content-Key: 184782
Url: https://administrator.de/contentid/184782
Printed on: April 24, 2024 at 08:04 o'clock