SharePoint高级内容--访问群体对象模型的开发之二

it2022-05-05  59

4、为访问群体添加复杂的基于AND 、OR和()的规则  我们可以使用括号与AND ,OR共同作用,组合出更复杂的规则来。 Sharepoint Portal Server的对象模型可以支持最多三层括号的嵌套。注意:如果一个访问群体对应复杂的规则,您就不能在Web管理页面中查看或编辑其属性了。不过不用担心,您仍可以在Web管理页面中查看其包含的成员。

下面是个组合出复杂规则的例子 TopologyManager topology  =   new  TopologyManager();PortalSite portal  =  topology.PortalSites[ new  Uri( " http://server_name " )];PortalContext context  =  PortalApplication.GetContext(portal);AudienceManager AudMgr  =   new  AudienceManager(context);Audience a  =   null ; bool  ruleListNotEmpty  =   false ; try {  a  =  AudMgr.Audiences[ " Engineer " ];} catch (AudienceArgumentException  ex){}ArrayList aRules  =  a.AudienceRules; if ( aRules  ==   null  ){  aRules  =   new  ArrayList();} else {      ruleListNotEmpty  =   true ;} try {   if  (ruleListNotEmpty)  {        aRules.Add( new  AudienceRuleComponent( null " AND " null ));  }  AudienceRuleComponent r0  =   new  AudienceRuleComponent( null " ( " null );  aRules.Add(r0);   AudienceRuleComponent r1  =   new  AudienceRuleComponent( " FirstName " " Contains " ,   " a " );  aRules.Add(r1);   AudienceRuleComponent r2  =   new  AudienceRuleComponent( null " AND " ,   null );  aRules.Add(r2);   AudienceRuleComponent r3  =   new  AudienceRuleComponent( " WorkEmail " " Contains " ,   " DepA.com " );  aRules.Add(r3);   AudienceRuleComponent r4  =   new  AudienceRuleComponent( null " ) " null );  aRules.Add(r4);  AudienceRuleComponent r5  =   new  AudienceRuleComponent( null " OR " null );  aRules.Add(r5);  AudienceRuleComponent r6  =   new  AudienceRuleComponent( null " ( " null );  aRules.Add(r6);  AudienceRuleComponent r7  =   new  AudienceRuleComponent( " FirstName " " Contains " ,   " b " );  aRules.Add(r7);   AudienceRuleComponent r8  =   new  AudienceRuleComponent( null " AND " ,   null );  aRules.Add(r8);   AudienceRuleComponent r9  =   new  AudienceRuleComponent( " WorkEmail " " Contains " ,   " DepB.com " );  aRules.Add(r9);  AudienceRuleComponent r10  =   new  AudienceRuleComponent( null " ) " null );  aRules.Add(r10);  a.AudienceRules  =  aRules;  a.Commit();} catch (AudienceException e){} 5、获取访问群体的成员 下面的代码将访问群体的成员的WindowsNT系统名称显示了出来。 TopologyManager topology  =   new  TopologyManager();PortalSite portal  =  topology.PortalSites[ new  Uri( " http://server_name " )];PortalContext context  =  PortalApplication.GetContext(portal);AudienceManager AudMgr  =   new  AudienceManager(context); try {  ArrayList memarray  =  AudMgr.Audiences[ " Engineer " ].GetMembership();   foreach (UserInfo o  in  memarray)  {     Console.WriteLine(o.NTName);  }} catch (AudienceException e){} 6、显示用户所隶属于的访问群体 已此类推,我们也可以显示一个用户所隶属于德所有访问群体。 TopologyManager topology  =   new  TopologyManager();PortalSite portal  =  topology.PortalSites[ new  Uri( " http://server_name " )];PortalContext context  =  PortalApplication.GetContext(portal);AudienceManager AudMgr  =   new  AudienceManager(context); try { // 传入一个Windows帐号名来获取隶属于的访问群体组。 // 如果要获取当前用户的隶属访问群体组,只要不指定任何参数直接GetUserAudienceIDs()就可以了   ArrayList audienceIDNames  =  AudMgr.GetUserAudienceIDs( " domain_name\\alias " );  ArrayList audienceNames  =   new  ArrayList();      for  ( int  i = 0 ; i < audienceIDNames.Count; i ++ )     {         AudienceNameID arrTemp  =  (AudienceNameID) audienceIDNames[i];         audienceNames.Add(arrTemp.AudienceName);         Console.WriteLine(audienceNames[i].ToString());     }} catch (AudienceException e){} 7、得到规程操作符的显示名称和内部名称 可以用下面的代码看看这些操作符在Web管理页面中怎么叫。 TopologyManager topology  =   new  TopologyManager();PortalSite portal  =  topology.PortalSites[ new  Uri( " http://server_name " )];PortalContext context  =  PortalApplication.GetContext(portal);AudienceManager AudMgr  =   new  AudienceManager(context);ArrayList OpList   =  AudMgr.AudienceOperatorList; for  ( int  list = 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”就包括在这里,还有好多活动目录中有的属性,值得细细去查看。 TopologyManager topology  =   new  TopologyManager();PortalSite portal  =  topology.PortalSites[ new  Uri( " http://server_name " )];PortalContext context  =  PortalApplication.GetContext(portal);AudienceManager AudMgr  =   new  AudienceManager(context);ArrayList LeftContentList;LeftContentList  =  AudMgr.AudienceLeftContentList; for  ( int  list = 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);} (完)

转载于:https://www.cnblogs.com/Sunmoonfire/archive/2006/10/17/531759.html

相关资源:数据结构—成绩单生成器

最新回复(0)