How to: Create and Edit a User Profile Property
Applies to: SharePoint Server 2010
User profile properties are name-value pairs attached to user profiles that describe personal information about the user. The 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 SharePoint Server 2010 can import from the Active Directory directory service, LDAP servers, and Business Data Catalog.
SharePoint Server 2010 provides a default set of commonly used user profile properties. Sometimes these may not be sufficient, and you might need additional properties. In such cases, you can create new properties, and they will be available for all user profiles. The following code example shows you how to add a new user profile property to the default set of properties and how to set privacy policies for the new property.
Replace servername with an actual value before using the code example. Also add references to the following in your Microsoft Visual Studio project:
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
Microsoft.SharePoint
System.Web
Example
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using System.Web;
namespace UserProfilesOMApp
{
class Program
{
static void Main(string[] args)
{
//Code example adds a new property called Marital Status.
using (SPSite site = new SPSite("https://servername"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
UserProfileConfigManager upcm = new UserProfileConfigManager(context);
try
{
ProfilePropertyManager ppm = upcm.ProfilePropertyManager;
// create core property
CorePropertyManager cpm = ppm.GetCoreProperties();
CoreProperty cp = cpm.Create(false);
cp.Name = "MaritalStatus";
cp.DisplayName = "Marital Status";
cp.Type = PropertyDataType.StringSingleValue;
cp.Length = 100;
cpm.Add(cp);
// create profile type property
ProfileTypePropertyManager ptpm = ppm.GetProfileTypeProperties(ProfileType.User);
ProfileTypeProperty ptp = ptpm.Create(cp);
ptpm.Add(ptp);
// create profile subtype property
ProfileSubtypeManager psm = ProfileSubtypeManager.Get(context);
ProfileSubtype ps = psm.GetProfileSubtype(ProfileSubtypeManager.GetDefaultProfileName(ProfileType.User));
ProfileSubtypePropertyManager pspm = ps.Properties;
ProfileSubtypeProperty psp = pspm.Create(ptp);
psp.PrivacyPolicy = PrivacyPolicy.OptIn;
psp.DefaultPrivacy = Privacy.Organization;
pspm.Add(psp);
}
catch (DuplicateEntryException e)
{
Console.WriteLine(e.Message);
Console.Read();
}
catch (System.Exception e2)
{
Console.WriteLine(e2.Message);
Console.Read();
}
}
}
}
}
See Also
Tasks
How to: Create User Profiles and Organization Profiles
How to: Create and Edit a User Profile Property
How to: Create Multivalue Properties
How to: Set Multiple Values to a Multivalue Property
How to: Change Profile Properties