>>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 >>>