4、为访问群体添加复杂的基于AND 、OR和()的规则
我们可以使用括号与AND ,OR共同作用,组合出更复杂的规则来。 Sharepoint Portal Server的对象模型可以支持最多三层括号的嵌套。
注意:如果一个访问群体对应复杂的规则,您就不能在Web管理页面中查看或编辑其属性了。不过不用担心,您仍可以在Web管理页面中查看其包含的成员。
下面是个组合出复杂规则的例子
TopologyManagertopology=newTopologyManager();
PortalSiteportal=topology.PortalSites[newUri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=newAudienceManager(context);
Audiencea=null;
boolruleListNotEmpty=false;
try
{
a=AudMgr.Audiences["Engineer"];
}
catch(AudienceArgumentExceptionex)
{}
ArrayListaRules=a.AudienceRules;
if(aRules==null)
{
aRules=newArrayList();
}
else
{
ruleListNotEmpty=true;
}
try
{
if(ruleListNotEmpty)
{
aRules.Add(newAudienceRuleComponent(null,"AND",null));
}
AudienceRuleComponentr0=newAudienceRuleComponent(null,"(",null);
aRules.Add(r0);
AudienceRuleComponentr1=newAudienceRuleComponent("FirstName","Contains","a");
aRules.Add(r1);
AudienceRuleComponentr2=newAudienceRuleComponent(null,"AND",null);
aRules.Add(r2);
AudienceRuleComponentr3=newAudienceRuleComponent("WorkEmail","Contains","DepA.com");
aRules.Add(r3);
AudienceRuleComponentr4=newAudienceRuleComponent(null,")",null);
aRules.Add(r4);
AudienceRuleComponentr5=newAudienceRuleComponent(null,"OR",null);
aRules.Add(r5);
AudienceRuleComponentr6=newAudienceRuleComponent(null,"(",null);
aRules.Add(r6);
AudienceRuleComponentr7=newAudienceRuleComponent("FirstName","Contains","b");
aRules.Add(r7);
AudienceRuleComponentr8=newAudienceRuleComponent(null,"AND",null);
aRules.Add(r8);
AudienceRuleComponentr9=newAudienceRuleComponent("WorkEmail","Contains","DepB.com");
aRules.Add(r9);
AudienceRuleComponentr10=newAudienceRuleComponent(null,")",null);
aRules.Add(r10);
a.AudienceRules=aRules;
a.Commit();
}
catch(AudienceExceptione)
{}5、获取访问群体的成员下面的代码将访问群体的成员的WindowsNT系统名称显示了出来。
TopologyManagertopology=newTopologyManager();
PortalSiteportal=topology.PortalSites[newUri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=newAudienceManager(context);
try
{
ArrayListmemarray=AudMgr.Audiences["Engineer"].GetMembership();
foreach(UserInfooinmemarray)
{
Console.WriteLine(o.NTName);
}
}
catch(AudienceExceptione)
{}
6、显示用户所隶属于的访问群体已此类推,我们也可以显示一个用户所隶属于德所有访问群体。
TopologyManagertopology=newTopologyManager();
PortalSiteportal=topology.PortalSites[newUri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=newAudienceManager(context);
try
{
//传入一个Windows帐号名来获取隶属于的访问群体组。
//如果要获取当前用户的隶属访问群体组,只要不指定任何参数直接GetUserAudienceIDs()就可以了
ArrayListaudienceIDNames=AudMgr.GetUserAudienceIDs("domain_name\\alias");
ArrayListaudienceNames=newArrayList();
for(inti=0;i<audienceIDNames.Count;i++)
{
AudienceNameIDarrTemp=(AudienceNameID)audienceIDNames[i];
audienceNames.Add(arrTemp.AudienceName);
Console.WriteLine(audienceNames[i].ToString());
}
}
catch(AudienceExceptione)
{}7、得到规程操作符的显示名称和内部名称可以用下面的代码看看这些操作符在Web管理页面中怎么叫。
TopologyManagertopology=newTopologyManager();
PortalSiteportal=topology.PortalSites[newUri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=newAudienceManager(context);
ArrayListOpList=AudMgr.AudienceOperatorList;
for(intlist=0;list<OpList.Count;list++)
{
Console.WriteLine(list.ToString());
Console.WriteLine("Name:{0}",((AudienceOperator)OpList[list]).OperatorName);
Console.WriteLine("DisplayName:{0}",((AudienceOperator)OpList[list]).OperatorDisplayName);
}8、得到规则操作符左侧操作数允许使用的名称可以用下面的代码看看可以用作规则操作符左侧操作数的所有内容。包括在Web管理页面中显示的名称和我们在编程时使用的内部名称。上面有提到的“Everyone”,“DL”就包括在这里,还有好多活动目录中有的属性,值得细细去查看。
TopologyManagertopology=newTopologyManager();
PortalSiteportal=topology.PortalSites[newUri("http://server_name")];
PortalContextcontext=PortalApplication.GetContext(portal);
AudienceManagerAudMgr=newAudienceManager(context);
ArrayListLeftContentList;
LeftContentList=AudMgr.AudienceLeftContentList;
for(intlist=0;list<LeftContentList.Count;list++)
{
Console.WriteLine(list.ToString());
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);
}(完)
来源:
http://www.cnblogs.com/Sunmoonfire/archive/2006/10/17/531759.html
优质内容筛选与推荐>>
1、Eclipse插件开发_学习_00_资源帖2、PySpark教程:使用Python学习ApacheSpark3、CRA简报:计算研究与数据科学的新兴领域4、浅谈错排公式的推导及应用5、Intel芯片架构中TEE的实现技术之SGX初探
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
阅读
好看
已推荐到看一看
你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
取消
分享想法到看一看
确定
最多200字,当前共字
微信扫一扫
关注该公众号