End-user account info from Active Directory for Windows network login

Relevant links:

This is sample code. Add error handling and adjust to your requirements as necessary.

loAdUser = ADUserInfo()
 
? "cn:", loAdUser.cn
? "department:", loAdUser.department
? "displayname:", loAdUser.displayName
? "fax:", loAdUser.facsimileTelephoneNumber
? "emailaddr:", loAdUser.mail
? "lastname:", loAdUser.sn
? "firstName:", loAdUser.givenName
? "telephone:", loAdUser.telephoneNumber
? "dn:", loAdUser.distinguishedName
? "upn:", loAdUser.userPrincipalName
? "title:", loAdUser.title
* Retrieve ADUser info for Windows Login 
FUNCTION ADUserInfo
LPARAMETERS tcUserName, tcUserDomain
LOCAL lcUserName, lcCurrentUserName, lcCurrentUserDomain, lcUserDomain, loNameTrans, lcDN, loAdUser
#DEFINE ADS_NAME_INITTYPE_GC  3
#DEFINE ADS_NAME_TYPE_NT4 	3
#DEFINE ADS_NAME_TYPE_1779 	1
 
lcCurrentUserName = GETENV("UserName")
lcCurrentUserDomain = GETENV("UserDomain")
 
* If parameters are not supplied, use current user login info
lcUserName = EVL(tcUserName, lcCurrentUserName)
lcUserDomain = EVL(tcUserDomain, lcCurrentUserDomain)
 
* Use NameTranslate object to get DN based on Windows Login Name
loNameTrans = CREATEOBJECT("NameTranslate")					
loNameTrans.Init( ADS_NAME_INITTYPE_GC, "")
TRY
	loNameTrans.Set(ADS_NAME_TYPE_NT4, lcUserDomain + "\" + lcUserName)
	lcDN = loNameTrans.Get(ADS_NAME_TYPE_1779)
	loAdUser = GETOBJECT("LDAP://" + lcDN)
CATCH TO oExp WHEN oExp.Errorno = 1426
	loAdUser = Null
ENDTRY	
 
RETURN loAdUser
No votes yet