访问群体(Audience)是Sharepoint Portal server中个性化特性的重要基础。所以基于基于访问群体对象模型的开发场景必然也很常见。在这里列举了8个比较常用到的功能实现。
按照我对其进行了解的顺序排列:
1、显示访问群体属性
我在访问群体管理页面中创建了好多的访问群体,现在想要编程的方式来看看这些访问群体的属性。
下面的代码显示了一个访问群体的 ID,name, 和 bValid 属性。分别是访问群体的GUID,名称和是否还有效。
TopologyManager topology = new TopologyManager();
PortalSite portal = topology.PortalSites[new Uri("http://server_name")];
PortalContext context = PortalApplication.GetContext(portal);
//创建一个 audience manager对象
AudienceManager AudMgr = new AudienceManager(context);
ArrayList AudienceIDList;
ArrayList AudienceNamelist = new ArrayList();
AudienceNamelist.Add("Engineer");
try
{
AudienceIDList = AudMgr.GetAudienceIDs(AudienceNamelist);
if (AudienceIDList != null)
{
for (int i=0; i < AudienceIDList.Count; i++)
{
Console.WriteLine(((AudienceNameID)AudienceIDList[i]).AudienceID.ToString());
Console.WriteLine(((AudienceNameID)AudienceIDList[i]).AudienceName);
Console.WriteLine(((AudienceNameID)AudienceIDList[i]).bValid.ToString());
}
}
}
catch(AudienceException e)
{}
2、编程创建访问群体
下面的代码创建了一个名为 "Customer Connection"的访问群体。
TopologyManager topology = new TopologyManager();
PortalSite portal = topology.PortalSites[new Uri("http://server_name")];
PortalContext context = PortalApplication.GetContext(portal);
AudienceManager AudMgr = new AudienceManager(context);
AudienceCollection ac = AudMgr.Audiences;
Audience a = null;
string sAudName = "Engineer";
string sDescription = "工程师组";
try
{
a = ac.Create( sAudName, sDescription );
}
catch(AudienceDuplicateNameException e) //如果创建的访问群体名已经存在,将抛出这个异常
{}
catch(AudienceException e1)
{}
这个访问群体仅仅是被创建出来了,这时并没有任何的规则与之对应。我们需要为其添加规则并进行收集工作。这里需要注意,收集访问群体只能在Web管理页面中进行,这个操作没有相应的对象模型可以编程。