PDA

Vollständige Version anzeigen : LDAP - Formular -> Browserausgabe


BastiFantasti
04.02.2008, 10:27
Hallo Zusammen!
Ich habe eine kurze frage zu LDAP. Erfolgreich konnte ich schon ein Programm optimieren, was in Form von einem Formular läuft. es ist jedeglich eine ldap abfrage wo man gruppen oder user suchen kann. jetz will ich das Browsermäßig ausgeben lassen damit die Mitarbeiter in der Firma auch davon was haben, kann mir da einer helfen? klingt einfacher als es ist?! danke im voraus
Programmieren tue ich mit VB.NET 2003 und .NET 1.1
Hier ist das Programm als Bild: http://img232.imageshack.us/img232/638/90086434tj5.jpg

Hier der Quellcode:

Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Vom Windows Form Designer generierter Code "

Public Sub New()
MyBase.New()

Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents txtServer As System.Windows.Forms.TextBox
Friend WithEvents txtPfad As System.Windows.Forms.TextBox
Friend WithEvents txtResult As System.Windows.Forms.TextBox
Friend WithEvents btnSuchen As System.Windows.Forms.Button
Friend WithEvents TreeView As System.Windows.Forms.TreeView
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents txtSuche As System.Windows.Forms.TextBox
Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.txtServer = New System.Windows.Forms.TextBox
Me.txtPfad = New System.Windows.Forms.TextBox
Me.txtResult = New System.Windows.Forms.TextBox
Me.btnSuchen = New System.Windows.Forms.Button
Me.TreeView = New System.Windows.Forms.TreeView
Me.txtSuche = New System.Windows.Forms.TextBox
Me.Label5 = New System.Windows.Forms.Label
Me.StatusBar1 = New System.Windows.Forms.StatusBar
Me.SuspendLayout()
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 16)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(72, 16)
Me.Label1.TabIndex = 0
Me.Label1.Text = "LDAP Server"
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(8, 40)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(72, 16)
Me.Label2.TabIndex = 1
Me.Label2.Text = "Pfad"
'
'txtServer
'
Me.txtServer.Location = New System.Drawing.Point(88, 16)
Me.txtServer.Name = "txtServer"
Me.txtServer.Size = New System.Drawing.Size(440, 20)
Me.txtServer.TabIndex = 4
Me.txtServer.Text = "LDAP:// "
'
'txtPfad
'
Me.txtPfad.Location = New System.Drawing.Point(88, 40)
Me.txtPfad.Name = "txtPfad"
Me.txtPfad.Size = New System.Drawing.Size(440, 20)
Me.txtPfad.TabIndex = 5
Me.txtPfad.Text = "OU= "
'
'txtResult
'
Me.txtResult.Font = New System.Drawing.Font("Courier New", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtResult.Location = New System.Drawing.Point(24, 304)
Me.txtResult.Multiline = True
Me.txtResult.Name = "txtResult"
Me.txtResult.ScrollBars = System.Windows.Forms.ScrollBars.Both
Me.txtResult.Size = New System.Drawing.Size(704, 216)
Me.txtResult.TabIndex = 9
Me.txtResult.Text = ""
Me.txtResult.WordWrap = False
'
'btnSuchen
'
Me.btnSuchen.Location = New System.Drawing.Point(80, 544)
Me.btnSuchen.Name = "btnSuchen"
Me.btnSuchen.Size = New System.Drawing.Size(520, 24)
Me.btnSuchen.TabIndex = 10
Me.btnSuchen.Text = "&Suchen"
'
'TreeView
'
Me.TreeView.ImageIndex = -1
Me.TreeView.Location = New System.Drawing.Point(24, 136)
Me.TreeView.Name = "TreeView"
Me.TreeView.SelectedImageIndex = -1
Me.TreeView.Size = New System.Drawing.Size(704, 152)
Me.TreeView.TabIndex = 11
'
'txtSuche
'
Me.txtSuche.Location = New System.Drawing.Point(88, 112)
Me.txtSuche.Name = "txtSuche"
Me.txtSuche.Size = New System.Drawing.Size(440, 20)
Me.txtSuche.TabIndex = 12
Me.txtSuche.Text = "(cn=*)"
'
'Label5
'
Me.Label5.Location = New System.Drawing.Point(8, 112)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(72, 16)
Me.Label5.TabIndex = 13
Me.Label5.Text = "Abfrage"
'
'StatusBar1
'
Me.StatusBar1.Location = New System.Drawing.Point(0, 570)
Me.StatusBar1.Name = "StatusBar1"
Me.StatusBar1.Size = New System.Drawing.Size(754, 22)
Me.StatusBar1.TabIndex = 14
Me.StatusBar1.Text = "StatusBar1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(754, 592)
Me.Controls.Add(Me.StatusBar1)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.txtSuche)
Me.Controls.Add(Me.TreeView)
Me.Controls.Add(Me.btnSuchen)
Me.Controls.Add(Me.txtResult)
Me.Controls.Add(Me.txtPfad)
Me.Controls.Add(Me.txtServer)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.Name = "Form1"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = " "
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub btnSuchen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuchen.Click
Dim de As DirectoryEntry
Dim obj, objProp As Object
Dim searcher As DirectorySearcher
Dim sr As SearchResultCollection
Dim res As SearchResult
Dim tn As TreeNode

txtResult.Text = ""
TreeView.Nodes.Clear()
tn = TreeView.Nodes.Add("Root")

Try
If txtUser.Text.Length > 0 Then
de = New DirectoryEntry("LDAP://" & txtServer.Text & "/" & txtPfad.Text, AuthenticationTypes.ServerBind)
Else
de = New DirectoryEntry("LDAP://" & txtServer.Text & "/" & txtPfad.Text)
End If

searcher = New DirectorySearcher(de)
searcher.Filter = txtSuche.Text '"(&(objectClass=person)(cn=*)"
'searcher.SearchScope = SearchScope.OneLevel

sr = searcher.FindAll
For Each res In sr
tn.Nodes.Add(res.Path).Tag = res
Next
tn.ExpandAll()
Catch ex As Exception
txtResult.Text &= ex.Message
End Try
End Sub

Private Sub TreeView_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView.AfterSelect
Dim NStr As String
Dim obj As Object
Try
If Not e.Node.Tag Is Nothing Then
txtResult.Text = e.Node.Text & vbCrLf
For Each NStr In CType(e.Node.Tag, SearchResult).Properties.PropertyNames
txtResult.Text &= vbCrLf & "--+-> " & NStr & vbCrLf
For Each obj In CType(e.Node.Tag, SearchResult).Properties(NStr)
txtResult.Text &= " |__ " & obj.ToString & vbCrLf
Next
Next NStr
End If
Catch ex As Exception
txtResult.Text &= ex.Message
End Try

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

End Class

Noodles
04.02.2008, 12:54
Was ist denn nun Deine Frage?

BastiFantasti
10.02.2008, 17:02
Hallo Noodles!
Also wie gesagt dieses funktionierende Formular will ich im Browser(html bzw. asp) ausgeben lassen, das es in der Firma verfügbar abgerufen werden kann.
Klingt für mich einfacher als es ist. Ich hänge da leider!