How to: Create Memberships
Applies to: SharePoint Server 2010
Microsoft SharePoint Server 2010 supports two types of memberships: Distribution List (DL) memberships and Windows SharePoint Services site memberships. DL membership information is obtained from the Active Directory directory service, and Windows SharePoint Services site membership information is obtained by pulling membership information from the SharePoint site. A user's public My Site page, called the Profile page, displays the user's memberships, as well as memberships the user and the viewing user have in common, among other information.
The User Profile object model adds classes and methods to support the new Memberships feature. The new classes and methods in the User Profiles object model support the following operations:
Retrieve user's memberships
Set user's membership privacy settings
Get common membership between two users
Enumerate member groups
Extend new membership type, and allow you to add new memberships through the object model
Membership is a first-class object in the User Profiles object model. You can get to the memberships from the UserProfile object.
The MemberGroup object defines a DL or a Windows SharePoint Services site or any other new member group that you create using the object model. It defines a URL property, which represents the archive location (the mailto: link) in the case of a DL, or a Windows SharePoint Services site URL, in the case of the MemberGroup object. The SourceReference property returns the DirectoryEntry of the DL from Active Directory, or the SPWeb or SPSite object depending on the MemberGroup.
The UserProfileManager class adds methods to return member group definitions and create new membership types.
The following example creates a new member group and adds a member to the newly created group. Replace servername, domainname, username, and other placeholders with actual values before using this 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 UserProfilesApp
{
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://servername"))
{
SPServiceContext context =
SPServiceContext.GetContext(site);
UserProfileManager profileManager =
new UserProfileManager(context);
//Create a member group
MemberGroup newGroup =
profileManager.GetMemberGroups().
CreateMemberGroup(PrivacyPolicyIdConstants.
MembershipsFromDistributionLists,
"Customer Connection Team","Customer Connection VTeam","Customer Connection","http://example","abcd");
//Create a membership
string sAccount = "domainname\\username";
UserProfile u = profileManager.GetUserProfile(sAccount);
u.Memberships.Create(newGroup,
MembershipGroupType.UserSpecified,
"Customer Connection Team", Privacy.Organization);
}
}
}
}