通过在 Microsoft Office SharePoint Server 2007 网站上启用锁定模式,可以限制匿名用户的权限。有关 Office SharePoint Server 2007 中的锁定模式的详细信息,请参阅规划外部匿名访问环境的安全性 (Office SharePoint Server) 中的“使用锁定模式”部分。
但是,即使已启用了锁定模式,匿名用户仍可以访问某些 Office SharePoint Server 应用程序 URL,例如,_layouts 目录中的页面和在 _vti_bin 目录中公开的 Web 服务。本主题介绍如何修改 Web.config 文件以限制对这些附加资源的访问。
备注
若要提高 Office SharePoint Server 网站的安全性,应启用锁定模式并修改 Web.config 文件,如本主题中所述。
使用 Web.config 文件允许和拒绝访问
通过将 location 元素添加到 Web.config 文件中,可以允许和拒绝对 Web 资源的访问。例如,您可以添加一个 location 元素以拒绝匿名用户访问 _layouts 目录,然后添加第二个 location 元素以显式允许匿名用户访问 _layouts/login.aspx 页面。第二个 location 元素会覆盖第一个 location 元素,并创建拒绝访问登录页面的例外。
有关 location 元素的详细信息,请参阅规划外部匿名访问环境的安全性 (Office SharePoint Server) 的“使用锁定模式”部分。
备注
不建议直接编辑 Web.config 文件。如果直接修改 Web.config 文件,则在升级 Office SharePoint Server 安装时可能将覆盖修改,或者已修改的 Web.config 文件可能不会复制到服务器场中的所有前端 Web 服务器。您应创建一个特殊的 XML 文件并将其保存在 \Config 目录中。在升级的过程中,Windows SharePoint Services 3.0 和 Office SharePoint Server 2007 将在此目录中查找有关文件,并将这些文件中指定的更改应用到 Web.config 文件,从而永久保存您所做的任何更改。有关在 Windows SharePoint Services 3.0 和Office SharePoint Server 2007 中永久保存 Web.config 文件的自定义项的详细信息,请参阅如何:添加自定义配置设置以扩展 Web 应用程序 (https://go.microsoft.com/fwlink/?linkid=157096&clcid=0x804)。
匿名用户应有权访问哪些页面?
若要使匿名用户能够通过服务器的验证,您应确保匿名用户有权访问以下页面:
_layouts/login.aspx
_layouts/accessdenied.aspx
_layouts/error.aspx
如果拒绝匿名用户访问任意这些页面,则 Office SharePoint Server 将无法正常工作。
如果您部署的自定义解决方案需要匿名用户访问 _layouts 目录中的其他页面或 _vti_bin 目录中的其他服务,则也请明确允许匿名访问这些资源。
示例
本部分的前二个示例演示用于限制匿名访问的可能策略。为便于阅读,这两个示例显示会出现在 Web.config 文件中的 XML。第三个示例演示在 Windows SharePoint Services 和 Office SharePoint Server 中将 XML 元素添加到 Web.config 文件中的正确方法。
重要说明: |
|---|
不要将前二个示例中的 XML 语句直接添加到 Web.config 文件。应创建一个类似于第三个示例的文件并将其保存到 \Config 目录中,如如何:添加自定义配置设置以扩展 Web 应用程序 (https://go.microsoft.com/fwlink/?linkid=157096&clcid=0x804) 中所述。 |
示例 1:拒绝所有访问;选择性地允许访问特定资源
以下 XML 片段首先拒绝匿名用户访问 _layouts 和 _vti_bin 目录中的所有页面,然后允许匿名用户访问 _layouts 目录中的四个特定页面。问号 (?) 表示匿名用户。这些限制不适用于经身份验证的用户。
<configuration>
<location path="_layouts">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="_vti_bin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/login.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/error.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/accessdenied.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
</configuration>
示例 2:拒绝访问特定资源
以下 XML 片段拒绝匿名用户访问 _layouts/error.aspx 和 _layouts/SearchResults.aspx。访问 _layouts 目录中的其他页面由网站的锁定模式状态进行控制。问号 (?) 表示匿名用户。这些限制不适用于经身份验证的用户。
<configuration>
<location path="_layouts/error.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/SearchResults.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<configuration>
示例 3:实施示例 1 的建议方法
以下 XML 语句演示如何将示例 1 中的 XML 语句添加到 Web.config 文件,通过这种方式,当更新 Windows SharePoint Services 或 Office SharePoint Server 时,添加的内容将会得到保留,如如何:添加自定义配置设置以扩展 Web 应用程序 (https://go.microsoft.com/fwlink/?linkid=157096&clcid=0x804) 中所述。
<?xml version="1.0" encoding="utf-8" ?>
<actions>
<add path="configuration">
<location path="_layouts">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="_vti_bin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/login.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/error.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="_layouts/accessdenied.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
</add>
</actions>
创建一个包含与示例 3 中 XML 语句类似的语句的文件之后,将该文件保存在 \Config 目录中,名称格式采用 webconfig. <名称>.xml。若要将这些更改应用到服务器场,请在每一台前端 Web 服务器上运行 Stsadm copyappobincontent 操作。有关详细信息,请参阅 Copyappbincontent:Stsadm 操作 (Office SharePoint Server)。
重要说明: