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.

Comments (2)
  1. Scott S says:

    Do you have a Jscript example?

  2. terrydashley says:

    Or better yet do you have an example using VS 2005 and C#?

Comments are closed.

Skip to main content