User Profile Properties Overview
User profile properties are name/value pairs attached to user profiles that describe personal information about the user. The user profile store contains a list of user profile property information. This information is obtained by importing it from a directory that contains user accounts, or manually by typing the account information into the user profile store. By default, Microsoft Office SharePoint Server 2007 can import from the Active Directory directory service, LDAP servers, and the Business Data Catalog.
Office SharePoint Server 2007 offers the following property improvements for developers building solutions using the user profile store.
Properties now support multiple values. There are many scenarios in which this improvement can be useful; for example, when defining properties that usually contain multiple values, such as a user’s fluent languages and areas of expertise.
The IsMultiValued parameter in the object model indicates whether the property is a multivalued property or not. However, just like the property data type, this parameter is not modifiable, once it is set.
The object model returns the multiple values of a multivalued property as an ArrayList object. The order of the values in the collection is the same as the update order.
Multivalued properties are also indexable. Currently, the Enterprise Search feature in Office SharePoint Server 2007 supports Contains and Equals clauses for multivalued properties.
Microsoft Office SharePoint Portal Server 2003 did not support importing from multivalued properties in the connection source. Note that Office SharePoint Server 2007 allows you to map a multivalued property at the source. Now you can even map a multivalued property at the source to a single-valued portal property. When you import properties, the import operation tries to get the first value from the source.
Properties with Open or Closed Choice Lists
With choice lists, you can tie user profile properties to a vocabulary constraining the list of possible values. The list can be open, meaning that users can add new choices, or closed, meaning the choices are defined by an administrator.
The ChoiceList property on the Property object in the User Profiles object model allows you to associate a choice list with a property. In addition, the ChoiceList object offers methods to search, remove, and rename vocabulary terms. Again, once you define a user profile property with a choice list, you cannot redefine it so it does not have the list, nor can you add a list to a property that has not been defined with one.
When you use the object model to try to set a value, but the value is not in the vocabulary list and the list is closed, you get an InvalidValueException. During import, however, Office SharePoint Server 2007 simply ignores the value if the value is not in the list and if the list is closed.
Values are not case-sensitive.
Office SharePoint Server 2007 provides a default set of user profile properties. Sometimes, the default set of properties that are included in the user profile might not contain all the information about users in your organization that you want to include on the site. In such cases, Office SharePoint Server 2007 allows you to customize user profiles by adding properties to the default user profiles. These properties can be user-entered values or can be imported from the Active Directory directory service, LDAP servers, or applications registered in Business Data Catalog. You can also edit existing properties to change how Office SharePoint Server 2007 displays those properties in the user profile.
Default and Privacy Policies
You can now assign default policies to properties that restrict who can access and view the property. For example, you can set policies to restrict access and viewing to Only Me (Private), My Manager (Manager), My Workgroup (Organization), My Colleagues (Contacts), or Everyone (Public). You can set default policies by using the DefaultPolicy property of the Property object in the object model.
In addition to default policies, you can assign privacy policies to enforce that a property is required (Mandatory), optional (Opt-in/Opt-out), or disabled (Disabled). You can set privacy policies with the PrivacyPolicy property of the Property object in the object model.
You cannot modify mapped properties, even if you have the Manage Profile right and if the policy allows you to edit properties.