访问群体概述

访问群体 是根据用户在 Microsoft Exchange 通讯组列表 (DL) 或 SharePoint 组中的成员身份,或门户管理员配置的规则而确定的用户组。例如,您可以将新员工、主管人员、销售人员或来自北京的人员设置为访问群体。在 Microsoft Office SharePoint Server 2007 中,访问群体规则可以基于用户配置文件中的信息、Active Directory 目录服务安全组或 Exchange 通讯组列表中的成员身份,或基于组织的报告结构(若这些信息保留在 Active Directory 中)。

通过访问群体,组织可根据用户的工作或任务设定内容的目标用户,而用户的工作或任务是按其在 SharePoint 组或通讯组列表中的成员身份、组织报告结构,或按其用户配置文件中的公共属性来定义的。

Microsoft Office SharePoint Portal Server 2003 仅支持基于规则的已编译访问群体。而 Office SharePoint Server 2007 支持基于访问群体、SharePoint 组和 DL 成员身份进行用户设定。此外,借助 Office SharePoint Server 2007,不仅可以定位于列表级别,还可以定位于列表项级别。

备注

Office SharePoint Server 2007 中还提供了可用于查找面向特定用户的所有 Office SharePoint Server 2007 网站的 Web 服务。有关详细信息,请参阅如何:使用已发布链接 Web 服务

设定内容访问群体

您可以使用三种方法来设定 Web 部件内容的目标访问群体。第一,可以设定 Web 部件的目标访问群体以便访问群体的成员在一个网页上看到不同的 Web 部件。第二,通过使用能识别访问群体成员身份的 Web 部件,您可以将列表中的项或链接的目标设定为一个或多个访问群体,这样只有那些访问群体的成员才可以查看 Web 部件中的目标项。例如,在“人力资源”默认区域中,网站管理员或该区域的经理可以在“新闻”Web 部件中添加一个新闻项。可将该项的目标设定为由新员工组成的访问群体,从而引导新员工访问“新员工福利”网站。第三,您可以将导航控件的目标设定为不同的访问群体。

管理访问群体和规则

全局访问群体和 DL 是在承载 Office SharePoint Server 2007 的一个或多个服务器场上集中进行管理的。他们适用于部署中的一个或多个门户,而非单个区域、网站或项目。您必须具有“管理访问群体”权限才能管理基于规则的访问群体。作为访问群体的管理者,您可以查看特定访问群体的全部成员,并管理由规则定义的访问群体,并且可以在规则和访问群体成员发生改变时对访问群体进行编译。

备注

您可以根据 Microsoft Exchange 通讯组列表 (DL) 和 SharePoint 组中的成员身份直接使用访问群体,而无需进行编译。只有基于规则的访问群体才需要进行编译。

您可以直接使用 DL 和 SharePoint 组。若要有效地使用基于规则的访问群体,您必须先创建访问群体以及用来确定哪些用户是该访问群体的成员的规则。然后必须将一个项目(如文档或新闻项目)的目标设定为一个或多个访问群体。最后,您需要将所定位的项目存储在一个列表中,该列表使用定位的内容 Web 部件向门户网站的用户显示项目。

备注

访问群体不用于分配权利和权限。Office SharePoint Server 2007 使用网站组向门户用户分配权利和权限。访问群体用于管理内容的分配方式,而不用于增强安全性。他们将信息推送到用户;他们不限制或允许对信息进行访问。

访问群体也包含在用户配置文件存储中,但包含在与用户配置文件不同的单独的表中。创建访问群体包括创建规则并编译访问群体。规则定义了应在访问群体包括或排除哪些用户帐户。为访问群体创建的规则还将存储在用户配置文件存储中单独的表中。

编译访问群体时,规则将用作用户配置文件的完整列表的筛选器。由于并非所有帐户信息都会导入用户配置文件数据库,因此,在访问群体编译过程中还将查询 Active Directory。符合此规则的帐户将被复制并放置在包含访问群体成员的单独的表中。该表包含门户所有访问群体的成员,并且独立于存储规则的表。包含访问群体成员的表不会进行更新;在重新编译访问群体之前,该表将保持不变。

使用访问群体设定列表项的目标

以下代码示例演示了如何将列表项的目标设定为特定访问群体。

   AudienceLoader audienceLoader = AudienceLoader.GetAudienceLoader();
   foreach (SPListItem listItem in list.Items)
   {
    // get roles the list item is targeted to
     string audienceFieldValue = (string)listItem[k_AudienceColumn];

    // quickly check if the user belongs to any of those roles
     if (AudienceManager.IsCurrentUserInAudienceOf(audienceLoader,                           audienceFieldValue, false))
                {
                    // is a member
                }
                else
                {
                    // not a member
                }
            }

See Also

概念

访问群体对象模型概述

其他资源

使用访问群体设定内容