如何:创建成员资格
上次修改时间: 2010年1月27日
适用范围: SharePoint Server 2010
Microsoft SharePoint Server 2010 支持两种类型的成员资格:通讯组列表 (DL) 成员资格和 Windows SharePoint Services 网站成员资格。DL 成员资格信息从 Active Directory 目录服务获取,Windows SharePoint Services 网站成员资格信息通过从 SharePoint 网站请求成员资格信息的方式获取。用户公用的"我的网站"网页称为配置文件页面,其中显示该用户的成员资格、该用户与查看的用户共有的成员资格以及其他信息。
用户配置文件对象模型添加了几个类和方法,以支持新的成员资格功能。用户配置文件对象模型中新的类和方法支持下列操作:
检索用户的成员资格
设置用户的成员资格隐私设置
获取两个用户共有的成员资格
枚举成员组
扩展新的成员资格类型,并允许您通过对象模型添加新的成员资格
Membership 是用户配置文件对象模型中的一类对象。您可以从 UserProfile 对象获取成员资格。
MemberGroup 对象可定义 DL、Windows SharePoint Services 网站或者您使用对象模型创建的任何其他新成员组。它会定义一个 URL 属性;如果是 DL,该属性表示存档位置(mailto: 链接),如果是 MemberGroup 对象,则表示 Windows SharePoint Services 网站 URL。SourceReference 属性从 Active Directory 返回 DL 的 DirectoryEntry,或者依据 MemberGroup 返回 SPWeb 或 SPSite 对象。
UserProfileManager 类添加了返回成员组定义和创建新成员资格类型的类。
下面的示例创建一个新的成员组并将一个成员添加到新创建的组。使用此代码示例之前,用实际值替换 servername、domainname、username 和其他占位符。此外,还应在 Microsoft Visual Studio 项目中添加对以下项目的引用:
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
Microsoft.SharePoint
System.Web
示例
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);
}
}
}
}