Domino 9 und frühere Versionen > ND7: Entwicklung
LS und LDAP
eknori:
Hat schon mal jemand einen Zugriff von LS auf LDAP realisiert?
Ich möchte gerne das eDirectory von Novell alslesen. Mit ICE und LDIF kein Problem, ich suche aber einen Weg, daß direkt aus LS zu machen.
...
eknori:
hmm, werde ich mich mal mit der wldap32.dll anfreunden
flaite:
Randbemerkung: Mit Java gibts z.B. das hier -> http://www.openldap.org/jldap/
Die LDAP Funktionalitäten schön modular einpacken und mit LS2J hast du ja schon gearbeitet.
eknori:
merci, werde ich mir auch mal ansehen. In der Sandbox gibt es auch noch was. Das basiert wiederum auf der o.a. DLL.
eknori:
Mal q+d zusammengebraten:
--- Code: ---Sub Click(Source As Button)
Dim session As LDAPSession
Dim search As LDAPSearch
Dim result As LDAPResultSet
Dim entry As LDAPEntry
Dim status As Variant
Dim i As Integer
Dim fileNumber As Integer
fileNumber = Freefile
Set session = New LDAPSession
Set search = New LDAPSearch
Set result = New LDAPResultSet
session.dn = ""
session.password = ""
session.Host = "10.14.1.130"
Print "Connecting to..." , session.Host
If session.Connect Then
Print "Connected to ", session.Host
Else
Print "Can't connect to", session.Host
Exit Sub
End If
Set search.Session = session
Set search.ResultSet = result
search.filter = "(objectclass=*)"
search.base = "cn=ST236243917,ou=Arbeitsstationen,ou=System,o=Velbert"
search.scope = LDAP_SCOPE_SUBTREE
status = search.Execute
Dim attr_name As String
Dim valuestr As String
Dim avalue As Variant
Set entry = result.GetFirstEntry()
Open "c:\computer.txt" For Output As fileNumber
While Not (entry Is Nothing)
attr_name = entry.getFirstAttr()
While Not (attr_name = "")
avalue = entry.getValue(attr_name)
For i=Lbound(avalue) To Ubound(avalue)
'Print ,, avalue(i)
If Instr(attr_name,"zEN")Or Instr(attr_name,"wMN") Then
Write #fileNumber,attr_name & "~~" & avalue(i)
End If
Next
attr_name = entry.getNextAttr()
Wend
Write #fileNumber, "=================================================================="
Set entry = result.GetNextEntry(entry)
Wend
Close fileNumber
session.disconnect
Print "Finished"
End Sub
--- Ende Code ---
schreibt die Ergebnisse der Abfrage in eine Textdatei.
--- Code: ---"zENINVLastScanDate~~1182495000000"
"zENINVIPAddress~~[10.24.13.145] "
"zENINVSubNetAddress~~[255.255.0.0] "
"zENINVMACAddress~~[009027A26B82] "
"zENINVDiskInfo~~[C: 2000 MB] [D: 2000 MB] "
"zENINVMemorySize~~256 MB"
"zENINVProcessorType~~[Celeron(TM)] "
"zENINVBIOSType~~AT/AT COMPATIBLE"
"zENINVVideoType~~VGA"
"zENINVNICType~~[Intel(R) PRO/100 S Desktop Adapter [Bus 2 Slot 11]] "
"zENINVNovellClientVersion~~4.90, Service pack : 2"
"zENINVOSRevision~~4.0 Service Pack 6"
"zENINVOSType~~Windows NT"
"zENINVAssetTag~~"
"zENINVSerialNumber~~"
"zENINVModelNumber~~"
"zENINVComputerModel~~"
"zENINVComputerType~~"
"wMNetworkAddress~~10.24.13.145"
"wMNAMEServer~~DREAM"
"wMNAMEOS~~WINNT (4.0 Service Pack 6)"
"wMNAMEDNS~~st236243917.witte-velbert.de"
"wMNAMECPU~~PENTIUM III"
"wMNAMEComputer~~ST236243917"
--- Ende Code ---
Ich verwende die dll aus der Sandbox
Die DLL ist eigentlich blß ein Wrapper für die wldap32.dll, die folgende Funktionen enthält.
--- Code: ---Declare Function ldap_init Lib "wldap32.dll" (hostName As String, portNumber As Long) As Integer
Declare Function ldap_sslinit Lib "wldap32.dll" (hostName As String, portNumber As Integer, secure As Integer) As Integer
Declare Function ldap_unbind Lib "wldap32.dll" (ld As Integer) As Integer
Declare Function LdapGetLastError Lib "wldap32.dll" () As Integer
Declare Function ldap_connect Lib "wldap32.dll" (ld As Integer, timeout As Integer) As Integer
Declare Function ldap_simple_bind_s Lib "wldap32.dll" (ld As Integer, dn As String, passwd As String) As Integer
Declare Function ldap_bind_s Lib "wldap32.dll" (ld As Integer, dn As String, passwd As String, method As Integer) As Integer
--- Ende Code ---
allerdings ist es mir bisher nicht gelungen, die Funktionen direkt aus LS aufzurufen.
Vielleicht fällt mir ja in den nächsten Wochen am Strand was dazu ein ... 8)
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln