[VB.net - LDAP] filter opties

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 22-09 13:47
Ik ben bezig met een login te maken in VB.net op basis van een Active Directory. Nu is het geen probleem om een connectie te leggen met AD en hier iets in te gaan opzoeken. maar ik kan op het internet maar geen lijstje vinden welke parameters ik kan meegeven om op te zoeken.

De code die ik gebruik:

code:
1
2
3
4
5
6
7
8
9
Dim de As DirectoryEntry = New DirectoryEntry()

de.Path = Path
de.Username = User
de.Password = Password
de.AuthenticationType = AuthenticationTypes.Secure

objSearch.Filter = "($(objectClass=user)(cn=" & UserName & "))"
Dim results As SearchResultCollection = objSearch.FindAll()


Met name -objSearch.Filter = "($(objectClass=user)(cn=" & UserName & "))"- versta ik niet helemaal.

Als mij iemand op weg kan helpen hiermee

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 18:31
objectClass is het type, in dit geval dus 'user'. cn is de common name, in dit geval de inlognaam.

Ik vraag me af of die '$' klopt, ik kan namelijk weinig vinden over die operator.

Volgens mij moet dat een '&' zijn en dan betekent het: de entry moet (objectClass=user) hebben en de naam moet (cn="X") zijn. Die " & UserName & " moet je vervangen voor de variabele die de gebruikersnaam bevat (vergeet niet om de variabele te escapen(!)).

Die operators (& | ! = ) enzovoort (zie ook: http://msdn.microsoft.com/en-us/library/aa746475.aspx) werken in prefixnotatie.

[ Voor 5% gewijzigd door Jaap-Jan op 30-03-2009 09:57 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 22-09 13:47
Idd een typefoutje de $ moet & zijn.

Duidelijke uitleg van de string, bedankt. Ik heb nu cn= meegegeven, maar kan ik ergens een lijst zien van wat ik nog kan meegeven?

Acties:
  • 0 Henk 'm!

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Zie: http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm

Google search: LDAP properties

[ Voor 20% gewijzigd door Face_-_LeSS op 30-03-2009 10:12 ]


Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 22-09 13:47
Bedankt Face_-_less zoiets zocht ik. Echter kon ik dit niet vinden in google. Mag ik vragen waarop je gezocht hebt?

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 18:31
Op MSDN staan ze ook: http://msdn.microsoft.com/en-us/library/ms675085(VS.85).aspx.

Als je dan doorklikt via 'Classes' 'All Classes' --> 'User' (de objectClass) vind je de attributen. Dan kun je bijvoorbeeld 'Common-Name aanklikken en krijg je naast 'Ldap-Display-Name' de correcte naam te zien.

Ik zocht op 'ActiveDirectory attributes', maar dan moet je wel weten dat het attributes zijn. :)

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 22-09 13:47
K nu heb ik ook nog het volgende probleem:

Kan ik ook met ldap controleren of het wachtwoord juist is? ik Dacht al aan het volgende:

code:
1
objSearch.Filter = "($(objectClass=user)(cn=" & UserName & ")(User-Password=" & Password & "))"


Maar op die msdn pagina staat er dat User-Password writeonly is.

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 18:31
De LDAP attributenaam is 'userPassword', maar volgens mij kun je die inderdaad niet lezen.

Wat ook wel wordt gedaan is een bind met die gebruikersnaam en password, dus geen ldapsearch, maar inloggen met de gebruikersnaam en wachtwoord en vervolgens laat je alsnog het search filter erop los (minus de controle op userPassword. Als het inloggen mislukt, klopt het wachtwoord niet en als je nul op het rekest krijgt van het search filter, heb je ook geen correcte gebruiker.

[ Voor 18% gewijzigd door Jaap-Jan op 30-03-2009 16:40 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett

Pagina: 1