aivilon
Goto Top

.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:

    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
Aufgerufen wird das ganze bei einem Klick auf OK:
    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

Content-Key: 184782

Url: https://administrator.de/contentid/184782

Printed on: April 24, 2024 at 08:04 o'clock