Creating a User URL
Creating a User URL
This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
Storing user information in Active Directory is accomplished by constructing a URL that identifies where the information is stored. The example code in this topic demonstrates one way to construct a user URL. The user URL can then be used to access the user object in Active Directory. If a user object was created using a URL that was not generated by this example code, URLs returned by this example might not correctly address that user object.
Although the example constructs the URL string, it does not create the object in Active Directory. If you use this code, you must ensure the validity of the user name and other parameters passed to the function. Your code must also verify whether the URL returned by this function refers to a valid Active Directory location.
When creating a user object in Active Directory, the Active Directory Service Interfaces (ADSI) application programming interface (API) takes separate parameters for the user name and the container in which to create the new user. To use this sample for creating new Active Directory user objects, you may need to adapt the following sample to return the container path without the user name.
Visual Basic
'///////////////////////////////////////////////////////////////// '// Name: CreateUserURL '// Purpose: To create a URL for a user '// Parameters: '// strUrl [out] : Returns the URL for the user or container. For example: '// LDAP://subdomain.example.com/CN=User2,CN=Users,DC=subdomain,DC=example,DC=com '// strContainer : Specifies the name of the container that the user exists in. '// If empty, the URL assumes the user is in the domain-level '// container. '// IsContainerURL: When True, returns a URL to the container holding the user. '// When False, returns a URL to the user object. '// strUserName : Specifies the name of the user. If this parameter is empty, '// a user name will be created in the form "CDOUser_XXXXX", '// where XXXXX is replaced by a random number between zero and '// 33554431. '// '//////////////////////////////////////////////////////////////////// Public Sub CreateUserURL(ByRef strURL As String, _ ByVal strContainer As String, _ ByVal IsContainerURL As Boolean, _ Optional ByRef strUserName As String) As Boolean On Error Resume Next Dim objIADs As IADs Dim iADSSystem As New ADSystemInfo Dim strDomainDN As String Dim strDomainDNSName As String Dim strContainerDN As String Dim iTemp As Integer Set objIADs = GetObject("LDAP://RootDSE") 'such as DC=mydomain,DC=example,DC=com strDomainDN = objIADs.Get("defaultNamingContext") 'such as mydnsname.example.com strDomainDNSName = iADSSystem.DomainDNSName strURL = "LDAP://" & strDomainDNSName & "/" If strContainer <> "" Then ' If strContainer is not empty, reference the object as a container. strContainerDN = "CN=" + strContainer + "," + strDomainDN Else ' If strContainer is empty, reference the user under the domain. strContainerDN = strDomainDN End If ' Check whether to return a URL to the user, or to the container of the user. If Not IsContainerURL Then ' Check whether a user name was supplied. If strUserName = "" Then ' If no user name was supplied, generate a random user name. ' For example, "CDOUser_142302" Randomize iTemp = Int(Rnd * 33554432) strUserName = "CDOUser" & "_" & Str(iTemp) End If ' Create the URL that will be returned, containing the user name. strURL = strURL & "CN=" & strUserName & "," & strContainerDN Else ' If the function is only returning a URL to the container, create that URL. strURL = strURL & strContainerDN End If ' Clean up. Set objIADs = Nothing Set iADSSystem = Nothing End Sub
Send us your feedback about the Microsoft Exchange Server 2003 SDK.
Build: June 2007 (2007.618.1)
© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.