More Ways to Pull Info from Active Directory

Here is a posting from Tom Mata, a colleague of mine from Armstrong Industries, who found an alternate way to reach into AD and get information on the current logged on user (compare and contrast this to Lab 15 in the InfoPath Labs that I reference on 10/17/05).

 

I had been looking and looking for a way to populate fields when a form load in Infopath for a while.  I finally got it to work and for anyone that is interested here you go.  This will bind to the current logged in user and retrieve values from their user object.  I would also imagine that this can be changed to query for computer and group objects as well.  But if anyone was in my situation this shoudl get you started.   To start with I used the Infopath vbscript template and in the onload event goes this code, which would have to be changed baed on your form...    Dim sysinfo            Dim objuser            Dim username            Dim OrgName            Dim trimname            sysinfo = CreateObject("ADSystemInfo")            objuser = GetObject("LDAP://" & sysinfo.UserName & "")            username = Replace(objuser.name, "CN=", "")            trimname = Replace(username, "\", "")             On Error Resume Next            Dim objusername            Dim objdivision            Dim objsubmitbyphone            Dim objsubmitofficeloc            Dim reqnum            Dim trimdivision             objusername = thisXDocument.DOM.selectSingleNode("my:myFields/my:SubmitBy")            objusername.text = trimname             objdivision = thisXDocument.DOM.selectSingleNode("my:myFields/my:Division")            trimdivision = Right(objuser.distinguishedName, "OU=")            objdivision.text = trimdivision             objsubmitbyphone = thisXDocument.DOM.selectSingleNode("my:myFields/my:SubmitByPhone")            objsubmitbyphone.text = objuser.telephonenumber            objsubmitofficeloc = thisXŠocument.DOM.selectSingleNode("my:myFields/my:Location")            objsubmitofficeloc.text = objuser.physicaldeliveryofficename            reqnum = thisXDocument.DOM.selectSingleNode("my:myFields/my:reqNum")            reqnum.text = Int(999990999 * Rnd())   This code was done in Visual Studio 2003 in VB.Net.