[VB.NET] ADSI verbinding maken

Pagina: 1
Acties:

  • Foxie_s
  • Registratie: Maart 2002
  • Laatst online: 18-03 20:30
Ben en een programmake aan het schrijven dat gebruikers uit een access bestand haalt en deze vervolgens in AD toevoegd. Het eerste gedeelte is ondertss gelukt (dus ik kan de gegevens eruit vissen) Maar het tweede lukt mij niet (het toevoegen in AD)

Concreet loop ik al vast met de verbinding. Nu weet ik eerlijk gezegd ook niet of wat ik wil doen ook mogelijk is met de gebruikte technologieën.

Dus
in een windows programma (geschreven in visual studio.net, taal vb.net) dat zich bevind op een client computer moet een verbinding maken met AD dmv ADSI (LDAP)

code die dat zou moeten doen is de volgende

code:
1
2
3
4
5
6
7
Dim toegangAD As New DirectoryServices.DirectoryEntry("LDAP://dc=JAN,dc=DOMEIN")
Dim zoekenAD As New System.DirectoryServices.DirectorySearcher(toegangAD)
Dim resultaat As System.DirectoryServices.SearchResult
zoekenAD.Filter = ("(anr= user)")
For Each resultaat In zoekenAD.FindAll()
     txtAD.Text = txtAD.Text & (resultaat.GetDirectoryEntry.Path)
Next


Nu loopt het eigenlijk al fout bij de eerste regel. Als ik in debug mode een QuickWatch doe op 'toegangAD ' duurt het een eeuwigheid voordat ik iets te zien krijg. Ik vermoed dan ook dat het al fout loopt met die LDAP.

Tot hier toe ongeveer een geschrijving van het probleempje .. nu de vragen waar ik nog geen antwoord heb op gevonden
  • Is het mogelijk om een client pc deze gegevens op te vragen in een windows programma met ADSI, LDAP enz? (en moet die client pc hiervoor in hetzelfde domein zitten)
  • Is mijn LDAP goed als je weet dat de servernaam Fserver is en het domein JAN.DOMEIN ?
Hopelijk is het een beetje duidelijk. Want naar het schijnt (volgens mijn vriendin dan .. heb ik ook eens kunnen vermelden dat ik een vriendin heb :P ) kan ik soms nogal vaag zijn

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Ik heb dit zelf uiteindelijk opgelost door ipv de DirectoryServices het ActiveDs COM-component aan te spreken (dmv een interop-assembly). Vervolgens kun je op de volgende manier een group opvragen uit een domein:
Visual Basic .NET:
1
2
3
Dim Domain As IADsContainer

Domain = GetObject("WinNT://JAN.DOMEIN,domain")
En zo zitten er nog meer interfaces in ActiveDs die je kunt gebruiken, maar daar kun je makkelijk voor googlen. :)

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Je provider is niet goed geformuleerd
Visual Basic:
1
Dim toegangAD As New DirectoryServices.DirectoryEntry("LDAP://dc=JAN,dc=DOMEIN")
Zo te zien gebruik je de NetBIOS naam van je domain en da's nie goed; je moet de fqdn gebruiken (dc=jan,dc=domein,dc=local ofzo). Als je 't domain niet weet kun je beter eerst via defaultNamingContext een referentie naar je domain ophalen
Visual Basic:
1
2
3
Dim RootDSE As New DirectoryEntry ( "LDAP://RootDSE" )
Dim Path As String = "LDAP://" + RootDSE.Properties ( "defaultNamingContext" ).Value
Dim toegangAD As New DirectoryEntry ( Path )

[ Voor 7% gewijzigd door Brahiewahiewa op 14-07-2005 13:22 ]

QnJhaGlld2FoaWV3YQ==