profiles Element
For the latest version of Commerce Server 2007 Help, see the Microsoft Web site.
The profiles element is a container for the elements that configure the functionality of user profiles and catalog sets. It describes the high-level schema implemented by the user and organization profiles to the runtime. The CommerceContext object uses this information when you implement the UserProfile and OrganizationProfile smart properties and in the GetCatalogsForUser method. This element is optional.
Note
The profiles element is a container for other elements. You cannot create a configuration with the profiles element alone.
The profiles element contains the optional encryption, userProfile, and organizationProfile subelements.
encryption Element
The encryption element specifies the description of the encryption key configured in the Profiles System.
The encryption element is required if the application reads or writes asymmetrically encrypted profile members; otherwise it is optional.
Note
The encryption element is a container for other elements. You cannot create a configuration with the encryption element alone.
The encryption element contains the keys subelement.
keys Element
The keys element contains the add subelement.
A maximum of three add elements may be added to a keys element.
The following table lists and describes the attribute of the keys element.
Attribute |
Data Type |
Description |
---|---|---|
keyIndex |
String |
The current key pair used for encryption/decryption. The set of valid values is 1 or 2. If the keyIndex attribute is set to 1, the add tag type attribute values of publicKeyand privateKey1form the current key pair. If the keyIndex attribute is set to 2, the add tag type attribute values of publicKey and privateKey2form the current key pair. The value of this attribute must represent an integer. This attribute is required if the application writes to asymmetrically encrypted profile properties. You must use this attribute together with an add element whose type attribute is publicKey. This attribute is required. |
add Element
The following table lists and describes the attributes of the add element.
Attribute |
Data Type |
Description |
---|---|---|
type |
String |
The type of public/private keys used for encryption/decryption. The valid set of case sensitive values are publicKey, privateKey1, and privateKey2. The publicKey is required if the keyIndex attribute is specified. The publicKey is required if the application writes to asymmetrically encrypted profile properties or if the keyIndex attribute is set. The privateKey1 is required only if the application reads asymmetrically encrypted profile properties that were encrypted when the keyIndex attribute was set to 1. For all other instances, the privateKey1 is optional. The privateKey2 is required only if the application reads asymmetrically encrypted profile properties that were encrypted when the keyIndex attribute was set to 2. For all other instances, the privateKey2 is optional. This attribute is case sensitive. This attribute is required. |
value |
String |
The hexadecimal string for the type attribute specified. Only keys generated by using the CryptoAPI routines are valid. This attribute is case sensitive. Alternatively, you can use the format: registry:{hive}[\{subkey}],[{valuename}] where hive is the key hive name (for example, HKEY_LOCAL_MACHINE) and subkey is an optional subkey name. If valuename is not specified, the (Default) value is used. Keys formatted in this manner are encrypted in the specified registry value. You can create these types of keys using Using the Profile Key Manager with the /reg flag. This attribute is required. |
To determine the keyIndex value used to encrypt the profile, query the profile member used to save the keyIndex value. The profile member used to save the keyIndex attribute must be defined in profiles using asymmetric encryption.
There are several acceptable combinations of the encryption element attributes. For encryption, the recommended combination is publicKey + keyIndex. For decryption, the recommended combination is privateKey1 + privateKey2. For both encryption and decryption, the recommended combination is publicKey + keyIndex + privateKey1 + privateKey2.
userProfile Element
The userProfile element specifies the description of the user profile configured in the Profiles System.
The following table lists and describes the attributes of the userProfile element.
Attribute |
Data Type |
Description |
---|---|---|
profileDefinition |
String |
The name of the profile definition that corresponds to a user in the Profiles System. The default value is UserObject. This attribute is required. |
userIdProperty |
String |
The property in the user profile that stores the unique user ID. You should not confuse this with the logon name. The user ID is the primary key used to distinguish all instances of the user profile from one another. The default value is user_id. This attribute is required. |
organizationIdProperty |
String |
The property in the user profile that stores the unique identifier of the instance of the organization profile with which the user profile is associated. The default value is AccountInfo.org_id. This attribute is required. |
catalogSetIdProperty |
String |
The property in the user profile that stores the catalog set or sets with which a particular instance of the user profile is associated. The default value is AccountInfo.user_catalog_set. This attribute is required. |
userIdSource |
String |
Specifies how Commerce Server initializes the UserID property. If you explicitly assign a value to the the UserID property in your site code, the userIdSource property is ignored. If your site code accesses the the UserID property before it is initialized, then the userIdSource attribute determines how to initialize the the UserID as follows:
Valid values are "ASP.NET" and "UPM". The default value is "ASP.NET". This attribute is required. |
userIdKey |
String |
The name of a field of the profile whose type is specified by the profileDefinition attribute. You use the value of this field to identify the current user, if the value of the userIdSource attribute is "ASP.NET". This attribute is ignored if the value of the userIdSource attribute is "UPM". The default value is "GeneralInfo.email_address". This attribute is required. |
userIdTarget |
String |
The name of a field of the profile whose type is specified by the profileDefinition attribute. The value of this field is the UserID of the current user, if the value of the userIdSource attribute is "ASP.NET". This attribute is ignored if the value of the userIdSource attribute is "UPM". The default value is "GeneralInfo.user_id". This attribute is required. |
organizationProfile Element
The organizationProfile element specifies the description of the organization profile configured in the Profiles System.
The following table lists and describes the attributes of the organizationProfile element.
Attribute |
Data Type |
Description |
---|---|---|
profileDefinition |
String |
The name of the profile definition that corresponds to an organization in the Profiles System. The default value is "Organization". This attribute is required. |
organizationIdProperty |
String |
The property in the organization profile that stores the unique identifier of the instance of the organization profile that distinguishes it from all other instances of organization profiles. The default value is "GeneralInfo.org_id". This attribute is required. |
catalogSetIdProperty |
String |
The property in the organization profile that stores the catalog set or sets with which a particular instance of the organization profile is associated. The default value is "GeneralInfo.org_catalog_set". This attribute is required. |
Example
<profiles>
<userProfile
profileDefinition="UserObject"
userIdProperty="GeneralInfo.user_id"
organizationIdProperty="AccountInfo.org_id"
catalogSetIdProperty="AccountInfo.user_catalog_set"
userIdSource="ASP.NET"
userIdKey="GeneralInfo.email_address"
userIdTarget="GeneralInfo.user_id"
/>
<organizationProfile
profileDefintion="Organization"
organizationIdProperty="GeneralInfo.org_id"
catalogSetIdProperty="GeneralInfo.org_catalog_set"
/>
<encryption>
<keys keyIndex="1">
<add type="publicKey" value="registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Commerce Server 2007 Keys\StarterSite,PublicKey" />
<add type="privateKey1" value="registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Commerce Server 2007 Keys\StarterSite,PrivateKey" />
<add type="privateKey2" value="" />
</keys>
</encryption>
</profiles>