LPARAMETERS tcUserName, tcUserDomain * #DEFINE ADS_NAME_INITTYPE_GC 3 #DEFINE ADS_NAME_TYPE_NT4 3 #DEFINE ADS_NAME_TYPE_1779 1 * LOCAL lcCurrentUserName, lcCurrentUserDomain lcCurrentUserName = GETENV("UserName") lcCurrentUserDomain = GETENV("UserDomain") * *-- If parameters are not supplied, use current user login info LOCAL lcUserName, lcUserDomain lcUserName = EVL(tcUserName, lcCurrentUserName) lcUserDomain = EVL(tcUserDomain, lcCurrentUserDomain) * LOCAL loNameTrans, lcDN LOCAL loActiveDomainUser * LOCAL loADUser AS Aduser OF security_activedirectory.vcx loADUser = MakeObject("Aduser","security_activedirectory.vcx") * TRY *-- Use NameTranslate object to get DN based on Windows Login Name loNameTrans = CREATEOBJECT("NameTranslate") loNameTrans.Init( ADS_NAME_INITTYPE_GC, "") loNameTrans.Set(ADS_NAME_TYPE_NT4, lcUserDomain + "\" + lcUserName) lcDN = loNameTrans.Get(ADS_NAME_TYPE_1779) loActiveDomainUser = GETOBJECT("LDAP://" + lcDN) loADUser.Exists = .T. loADUser.DomainName = lcDN loADUser.FullName = loActiveDomainUser.cn loADUser.Department = loActiveDomainUser.Department loADUser.PrincipalName = loActiveDomainUser.UserPrincipalName loADUser.DistinguishedName = loActiveDomainUser.DistinguishedName loADUser.CurrentUserDomain = lcUserDomain CATCH TO oExp WHEN oExp.Errorno = 1426 loActiveDomainUser = Null loADUser.Exists = .F. ENDTRY * RETURN loADUser