我们可以使用括号和AND ,OR共同作用,组合出更复杂规则来 Sharepo Portal Server对象模型可以支持最多 3层括号嵌套
注意:如果个访问群体对应复杂规则您就不能在Web管理页面中查看或编辑其属性了不过不用担心您仍可以在Web管理页面中查看其包含成员
下面是个组合出复杂规则例子
TopologyManagertopology=TopologyManager;
PortalSiteportal=topology.PortalSites[Uri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=AudienceManager(context);
Audiencea=null;
boolruleListNotEmpty=false;
try
{
a=AudMgr.Audiences["Engineer"];
}
catch(AudienceArgumentException ex)
{}
ArrayListaRules=a.AudienceRules;
(aRulesnull)
{
aRules=ArrayList;
}
{
ruleListNotEmpty=true;
}
try
{
(ruleListNotEmpty)
{
aRules.Add(AudienceRuleComponent(null,"AND",null));
}
AudienceRuleComponentr0=AudienceRuleComponent(null,"(",null);
aRules.Add(r0);
AudienceRuleComponentr1=AudienceRuleComponent("FirstName","Contains", "a");
aRules.Add(r1);
AudienceRuleComponentr2=AudienceRuleComponent(null,"AND", null);
aRules.Add(r2);
AudienceRuleComponentr3=AudienceRuleComponent("WorkEmail","Contains", "DepA.com");
aRules.Add(r3);
AudienceRuleComponentr4=AudienceRuleComponent(null,")",null);
aRules.Add(r4);
AudienceRuleComponentr5=AudienceRuleComponent(null,"OR",null);
aRules.Add(r5);
AudienceRuleComponentr6=AudienceRuleComponent(null,"(",null);
aRules.Add(r6);
AudienceRuleComponentr7=AudienceRuleComponent("FirstName","Contains", "b");
aRules.Add(r7);
AudienceRuleComponentr8=AudienceRuleComponent(null,"AND", null);
aRules.Add(r8);
AudienceRuleComponentr9=AudienceRuleComponent("WorkEmail","Contains", "DepB.com");
aRules.Add(r9);
AudienceRuleComponentr10=AudienceRuleComponent(null,")",null);
aRules.Add(r10);
a.AudienceRules=aRules;
a.Commit;
}
catch(AudienceExceptione)
{}
5、获取访问群体成员
下面代码将访问群体成员WindowsNT系统名称显示了出来
TopologyManagertopology=TopologyManager;
PortalSiteportal=topology.PortalSites[Uri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=AudienceManager(context);
try
{
ArrayListmem.gif' />=AudMgr.Audiences["Engineer"].GetMembership;
foreach(UserInfooinmem.gif' />)
{
Console.WriteLine(o.NTName);
}
}
catch(AudienceExceptione)
{}
6、显示用户所隶属于访问群体
已此类推我们也可以显示个用户所隶属于德所有访问群体
TopologyManagertopology=TopologyManager;
PortalSiteportal=topology.PortalSites[Uri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=AudienceManager(context);
try
{
//传入个Windows帐号名来获取隶属于访问群体组
//如果要获取当前用户隶属访问群体组只要不指定任何参数直接GetUserAudienceIDs就可以了
ArrayListaudienceIDNames=AudMgr.GetUserAudienceIDs("do_namealias");
ArrayListaudienceNames=ArrayList;
for(i=0;i<audienceIDNames.Count;i)
{
AudienceNameIDarrTemp=(AudienceNameID)audienceIDNames[i];
audienceNames.Add(arrTemp.AudienceName);
Console.WriteLine(audienceNames[i].);
}
}
catch(AudienceExceptione)
{}
7、得到规程操作符显示名称和内部名称
可以用下面代码看看这些操作符在Web管理页面中如何叫
TopologyManagertopology=TopologyManager;
PortalSiteportal=topology.PortalSites[Uri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=AudienceManager(context);
ArrayListOpList =AudMgr.AudienceOperatorList;
for(list=0;list<OpList.Count;list)
{
Console.WriteLine(list.);
Console.WriteLine(" Name:{0}",((AudienceOperator)OpList[list]).OperatorName);
Console.WriteLine(" DisplayName: {0}", ((AudienceOperator)OpList[list]).OperatorDisplayName);
}
8、得到规则操作符左侧操作数允许使用名称
可以用下面代码看看可以用作规则操作符左侧操作数所有内容包括在Web管理页面中显示名称和我们在编程时使用内部名称上面有提到“Everyone”“DL”就包括在这里还有好多活动目录中有属性值得细细去查看
TopologyManagertopology=TopologyManager;
PortalSiteportal=topology.PortalSites[Uri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=AudienceManager(context);
ArrayListLeftContentList;
LeftContentList=AudMgr.AudienceLeftContentList;
for(list=0;list<LeftContentList.Count;list)
{
Console.WriteLine(list.);
Console.WriteLine(" Name:"+((AudienceLeftContent)LeftContentList[list]).Name);
Console.WriteLine(" DisplayName:"+((AudienceLeftContent)LeftContentList[list]).DisplayName);
Console.WriteLine(" DataType:"+((AudienceLeftContent)LeftContentList[list]).DataType);
Console.WriteLine(" DataLength:"+((AudienceLeftContent)LeftContentList[list]).DataLength);
Console.WriteLine(" bProperty:"+((AudienceLeftContent)LeftContentList[list]).bProperty);
}
(完)
最新评论