如何:使用 AND 和 OR 运算符向访问群体添加简单规则
上次修改时间: 2010年2月2日
适用范围: SharePoint Server 2010
创建访问群体时,用户界面对于定义规则仅提供两个选项:包括符合所有规则的用户或包括符合任意规则的用户。另外,使用用户界面时最多只能定义 6 个规则。尽管这对大多数情况都已足够,但有时还是需要有多于 6 个规则。
在这种情况下,可以使用访问群体对象模型。利用访问群体对象模型,可以为访问群体创建多于 6 个规则。以下代码示例为名为"John Connection"的访问群体添加简单规则。此示例使用 AND 运算符将多个规则组合起来。如果只需要成员符合规则之一,则可以使用 OR 运算符代替 AND。
请先将 servername 和其他字符串替换为实际值,然后再运行代码示例。还要在 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.SharePoint.Administration;
using Microsoft.Office.Server.Audience;
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using System.Web;
using System.Collections;
namespace AudienceConsoleApp
{
class Program
{
static void Main(string[] args)
{
try
{
using (SPSite site = new SPSite("https://servername"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
AudienceManager AudMgr = new AudienceManager(context);
AudienceCollection ac = AudMgr.Audiences;
Audience a = null;
bool ruleListNotEmpty = false;
try
{
a = AudMgr.Audiences["John Connection"];
}
catch (AudienceArgumentException ex)
{
//your exception handling code here
}
ArrayList aRules = a.AudienceRules;
if (aRules == null)
{
aRules = new ArrayList();
}
else
{
ruleListNotEmpty = true;
}
try
{
if (ruleListNotEmpty)
{
aRules.Add(new AudienceRuleComponent(null, "AND", null));
}
AudienceRuleComponent r1 = new AudienceRuleComponent("FirstName", "Contains", "John");
aRules.Add(r1);
AudienceRuleComponent r2 = new AudienceRuleComponent(null, "AND", null);
aRules.Add(r2);
AudienceRuleComponent r3 = new AudienceRuleComponent("WorkEmail", "Contains", "example.com");
aRules.Add(r3);
a.AudienceRules = aRules;
a.Commit();
}
catch (AudienceException e)
{
//Your exception handling code here
}
}
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
Console.Read();
}
}
}
}