在 SharePoint 中添加安全修整代码片段

您可以使用安全修整代码段,根据特定用户必须拥有的特定权限以及他们是通过身份验证的用户还是匿名用户,来仅向这些用户显示内容。

安全修整代码段简介

您可以使用安全修整代码段,根据特定用户必须拥有的特定权限以及他们是通过身份验证的用户还是匿名用户,来仅向这些用户显示内容。 您可以将安全修整面板添加到母版页或页面布局中。 “安全剪裁”面板是一个容器,除了静态内容外,还可以包含其他组件或代码片段,例如 Web 部件。

例如,您可以使用安全修整面板对指定用户显示以下内容:

  • 一个“搜索的内容”Web 部件,它显示经过身份验证的用户当前正在使用的文档。

  • 最近已修改文档的列表视图,以便经过身份验证的用户看到网站上的新增内容。

  • 内容搜索 Web 部件,它向未经身份验证的访问者显示基于当前文章的推荐链接列表。 这个推荐列表可能会对正在网站上操作且经过身份验证的内容作者造成干扰,但对于未经身份验证的访客而言却非常重要。

  • 与功能区分开的登录链接(对于未经身份验证的用户或尚未通过身份验证的用户)。

    注意

    这个登录链接会自动插入到使用设计管理器创建的母版页中,但如果没有必要,也可以删除此链接。

安全修整面板有两个重要的属性设置,一个用于身份验证,另一个用于权限(或授权)。 例如,您可以使用安全修整面板对指定用户显示以下内容:

  • AuthenticationRestrictions:通过此属性,您可以将面板限制为仅面向经过身份验证的用户或匿名用户显示,也可以选择所有用户(所有用户是默认设置)。

  • 权限:使用此属性,可以选择用户查看面板内容所必须拥有的特定权限。

    注意

    选择单个权限,而不是权限级别。 (权限级别是一组已授予的权限。)

当然,如果将身份验证限制为仅匿名用户,则通常不需要指定特定权限,因为匿名用户通常没有获得任何 SharePoint 权限。 仅对所有用户或所有经过身份验证的用户使用权限才具有意义。

安全修整面板的功能区中有三个选项,如表 1 的左列所示。 表 1 显示了这些设置如何确定用户需要拥有的特定权限、包含该特定权限的最低默认权限级别,以及默认情况下链接到该权限级别的组。

注意

这些是默认设置,可以针对任意给定范围(如网站集、网站、列表或项)进行更改。

例如,如果您将安全修整面板设置为"向作者显示",默认情况下,面板内部的内容会对成员组用户和所有者组中的用户可见。

表 1. 面板选项到默认权限级别和组的映射

安全修整面板选项 权限属性 权限 权限级别 Group
向作者显示 AddAndCustomizePages 添加和自定义网页 参与(或更高) 成员
对经过身份验证的用户显示 ViewPages 查看网页 读取(或更高) 访问者
向管理员显示 FullMask 全选 完全控制 Owners

插入安全修整面板

与所有代码段类似,您可以从代码段库添加安全修整代码段。 若要导航到代码段库,必须先选择一个要编辑的母版页或页面布局。

插入安全修整面板

  1. 浏览到您的发布网站。

  2. 在页面右上角中,选择"设置"齿轮,然后选择"设计管理器"。

  3. 在设计管理器的左导航窗格中,选择"编辑母版页"或"编辑页面布局",具体取决于您所编辑的文件类型。

  4. 选择要在其中添加代码段的母版页或页面布局的名称。

  5. 若要打开代码段库,请选择服务器端预览右上角的"代码段"。

  6. 在功能区的"设计"选项卡上,选择"安全修剪"。

    (可选)在"安全修剪"按钮上的下拉列表中,可以选择可看见面板的用户,或者可以通过配置面板的重要属性值查看更多选项。

  7. 在代码段库右侧的"关于此组件"下,单击或选择节标题可展开或折叠属性组,然后配置需要的所有自定义设置。

  8. 配置任何属性后,选择"更新"。 这将更新页面左侧的 HTML 代码段,以使标记反映出您的自定义设置。 您可以随时选择“重置”将所有属性恢复为其默认设置。

  9. 在代码段库左侧的"HTML 代码段"下,选择"复制到剪贴板"。

  10. 在您的 HTML 编辑器中,打开您计算机上的映射网络驱动器,然后打开您要向其添加代码段的母版页或页面布局对应的 HTML 文件。

  11. 在 HTML 文件中,将代码段粘贴到希望显示标记的位置。

    如果您将代码段添加到页面布局,请确保将代码段粘贴到 PlaceHolderMain 内部。

  12. class="DefaultContentBlock"<div> 替换为您自己的特定内容。

  13. 保存该页面,然后刷新设计管理器中的服务器端预览,以确保安全修整面板按预期方式显示。

理解代码段标记

安全修整代码片段的最重要部分是 AuthenticationRestrictions 属性和 Permissions 属性以及下面用粗体显示的 <div>。 只有当不是默认值 AllUsers 时,才会在标记中显示 AuthenticationRestrictions。 如果对“代码段库”中的代码片段选择“重置”,便会将 AuthenticationRestrictions 从标记中删除。也就是说,代码片段使用默认值 AllUsers

<div>(其中 class="DefaultContentBlock")可替换为自己的内容,其中包含其他代码片段和控件。

<div data-name="SecurityTrimmedAuthors">
    <!--CS: Start Security Trim Snippet-->
    <!--SPM:<%@Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>-->
    <!--MS:<SharePoint:SPSecurityTrimmedControl runat="server" AuthenticationRestrictions="AuthenticatedUsersOnly" Permissions="AddAndCustomizePages" PermissionContext="RootSite">-->
        <!--PS: Start of READ-ONLY PREVIEW (do not modify)--><span><!--PE: End of READ-ONLY PREVIEW-->
        <div class="DefaultContentBlock" style="border:medium black solid; background:yellow; color:black; margin:20px; padding:10px;">
        You should replace this div with content that renders based on your Security Trim Properties.
        </div>
        <!--PS: Start of READ-ONLY PREVIEW (do not modify)--></span><!--PE: End of READ-ONLY PREVIEW-->
    <!--ME:</SharePoint:SPSecurityTrimmedControl>-->
    <!--CE: End Security Trim Snippet-->
</div>

另请参阅