65.9K
CodeProject 正在变化。 阅读更多。
Home

MOSS 2007 站点的表单身份验证

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.52/5 (28投票s)

2007 年 6 月 5 日

9分钟阅读

viewsIcon

248530

本文档的目的是提供有关为 MOSS 2007 站点启用基于表单的身份验证 (FBA) 的分步信息。

引言

本文档的目的是提供有关为 MOSS 2007 站点启用基于表单的身份验证 (FBA) 的分步信息。MOSS 2007 站点默认使用 Windows 身份验证。但某些业务需求需要基于表单的身份验证来满足要求。

以下各节将介绍如何为 MOSS 2007 站点启用表单身份验证。

设置 ASP.Net 2.0 表单身份验证用户和角色数据源

本节介绍如何创建用于存储用户信息的数据库,例如用于表单身份验证的凭据和角色。本节还介绍了在 web.config 文件中配置 Membership 和 Role 提供程序,以及使用 ASP.Net 配置向导创建用户。本文演示了如何创建一个用户,该用户将在稍后用于测试表单身份验证。

创建数据库

要创建数据库,Microsoft 提供了一个名为 **aspnet_regsql.exe** 的工具/实用程序,它可以为我们创建数据库。此实用程序可以在 **%windir%\Microsoft.Net\Framework\vx.x.xxxxx** 文件夹中找到。请参见下图

Screenshot - 1.jpg

执行 aspnet_regsql.exe 文件将打开 ASP.Net SQL 设置向导,该向导将引导您完成创建 ASP.Net 2.0 数据库的过程。我已将数据库名称添加为 **FBAASPNetDb**,并为其配置了 Windows 身份验证。请参见下图

单击 **Next** 按钮。请参见下图

选择 **Configure SQL Server for application services** 选项,然后单击 **Next** 按钮。请参见下图

单击 **Next** 按钮。现在,数据库 **FBAASPNetDb** 已成功创建。请参见下图

配置 Membership 和 Role 提供程序

在前一节中,数据库已成功创建。现在我们需要向数据库添加一个用户。使用 ASP.Net 配置向导,可以将用户添加到数据库。这可以通过创建允许我们添加用户和角色的网站来实现,并确保在将 Sharepoint 纳入之前,数据库连接字符串、membership 和 role 提供程序已正确配置。

以下步骤将介绍如何创建网站、配置 membership 和 role 提供程序以及执行 ASP.Net 配置向导。

a) 打开 Visual Studio 2005,然后选择 **File** **à** **New** **à** **Web Site**。在“新建网站”对话框中,选择 **ASP.Net Web Site** 模板,然后输入用于存储网站文件的位置。请参见下图

在上图中,位置显示为 Z:\Inetpub\FBA。这是因为 Sharepoint 服务器根目录已映射到我的系统,而 Visual Studio 2005 未安装在服务器计算机上。您可以选择任何方便您的位置。

b) 向网站项目添加一个新的 web.config 文件。请参见下图

c) 默认情况下,您将在 <configuration> 节点内看到一个 <connectionStrings/> 节点。指定到前一节中创建的数据库的连接字符串。请参见下图

我已将服务器命名为 **EC4-NETP-148429**。这是安装了 SQL Server 2005 的服务器。请填写相应的服务器名称。

d) 设置连接字符串后,我们需要在 web.config 文件中指定 membership 和 role 提供程序。在本文中,我使用的是 ASP.Net SQL Membership 和 Role 提供程序。因此,请在 <system.web> 标记中指定提供程序的 [信息]。请参见下图

我们需要确保的一点是,web.config 文件中指定的提供程序 **name** 和 **connection string** 属性不能与 machine.config 文件中指定的相同。当我们安装 .Net Framework 2.0 时,默认的连接字符串和提供程序会指定在 machine.config 文件中。

e) 保存 web.config 文件,然后单击 **Website** **à** **ASP.Net Configuration** 来启动 ASP.Net 配置向导。请参见下图

f) 在上述向导中设置身份验证类型。为此,请单击 **Security** 链接。在 **Security** 选项卡下,在 **Users** 部分,单击 **Select authentication type** 链接。选择 **From the internet** 选项,然后按右下角的 **Done** 按钮。通过选择此选项,意味着该网站将使用表单身份验证来识别用户。请参见下图

g) 要测试 membership 和 role 提供程序,请单击 **Provider** 选项卡。在 **Provider** 选项卡中,单击 **Select a different provider for each feature (advanced)** 链接。选择正确/正确的 membership 和 role 提供程序,然后单击 **Test** 链接以确保提供程序正在与正确的数据库通信。请参见下图

此时,我们已将 web.config 文件与连接字符串和提供程序信息进行了配置。我们也已使用数据库测试了提供程序。下一节将介绍如何向数据库添加用户。

创建用户

a) 要添加用户,请单击 **Security** 选项卡。在 **Security** 选项卡下,在 **Users** 部分,单击 **Create user** 链接。我在此处添加的用户名为 **testFBA**,密码为 **password**,稍后将用于测试表单身份验证。请参见下图

现在我们已成功创建了一个用户。暂时不用担心创建角色,稍后会进行说明。

创建 Web 应用程序

本节介绍如何使用 Sharepoint Central Administration 创建 Web 应用程序。在本文中,我将创建两个 IIS 网站;一个是供内容所有者使用的 extranet 站点,已配置为 Windows 身份验证。另一个站点是专为 Internet 用户设计的 internet 站点,已配置为表单身份验证。以下各节介绍这两个站点的创建。

创建 extranet IIS 网站

在创建新站点之前,我们需要创建一个新的 Web 应用程序。以下是创建新 Web 应用程序的步骤信息。

a) 单击 **Start** **à** **All Programs** **à** **Microsoft Office Server** **à** **Central Administration**。

b) 在 **Application Management** 选项卡下,在 **Sharepoint Web Application Management** 部分,单击 **Crate or extend Web application** 链接。

c) 在 **Create or Extend Web Application** 页面上,单击 **Create a new Web Application** 链接。提供信息以创建新的 Web 应用程序,然后单击 **OK** 按钮。请参见下图。

d) 在上述 Web 应用程序下创建站点。为此,请在 **Application Management** 选项卡下,在 **Sharepoint Site Management** 部分,单击 **Create site collection** 链接。

e) 在 Create Site Collection 页面上,选择上一步中创建的 Web 应用程序,然后提供其他信息以创建站点,最后单击 **OK** 按钮。请参见下图。

现在我们已成功创建了 Web 应用程序和站点。下一节将介绍如何创建 internet 站点。

创建 internet IIS 网站

本节介绍如何将我们的 Web 应用程序扩展到之前几节中创建的另一个 internet 站点。此站点适用于匿名或 Internet 用户。

a) 单击 **Start** **à** **All Programs** **à** **Microsoft Office Server** **à** **Central Administration**。

b) 在 **Application Management** 选项卡下,在 **Sharepoint Web Application Management** 部分,单击 **Crate or extend Web application** 链接。

c) 在 **Create or Extend Web Application** 页面上,单击 **Extend an existing Web application** 链接。提供信息以扩展 Web 应用程序,然后单击 **OK** 按钮。请参见下图。

现在我们已成功创建了 extranet 和 internet 站点。以下是这些站点的 URL:

extranet 站点:http://ec4-netp-148429:4040

internet 站点:http://ec4-netp-148429:4041

打开浏览器,输入 URL 测试两个站点。但这两个站点都要求进行 Windows 身份验证,因为它们尚未配置为表单身份验证。

以下各节介绍如何配置每个站点的 web.config 文件,其中包含连接字符串和提供程序信息。

配置 Web 应用程序以与表单身份验证数据存储通信

在本节中,我们将修改两个站点的 web.config 文件。Web.config 文件位于站点的根目录下,即 **c:\Inetpub\wwwroot\wss\Virtual Directories.** 下面,有两个文件夹,即 **4040** 和 **4041**。特定站点的 Web.config 文件位于这些文件夹内。

配置 extranet 站点的 web.config 文件

extranet 站点的 web.config 文件位于 c:\Inetpub\wwwroot\wss\VirtualDirectories\4040 文件夹中。

a) 打开 web.config 文件,在 **2.2.c** 节中定义的 <connectionStrings> 节点,放在 </SharePoint> 标签和 <system.web> 标签之间。请参见下图

b) 添加 **2.2.d** 节中定义的 membership 和 role 提供程序节点,放在 <system.web> 标签之后。请参见下图

c) 保存 web.config 文件。

配置 internet 站点的 web.config 文件

internet 站点的 web.config 文件位于 c:\Inetpub\wwwroot\wss\VirtualDirectories\4041 文件夹中。

a) 打开 web.config 文件,并遵循 **Section** **4.1** 中指定的相同步骤。

配置 SharePoint Central Administration

Central Administration 站点的 web.config 文件位于 c:\Inetpub\wwwroot\wss\VirtualDirectories\13035 文件夹中。要查找虚拟目录,请打开 **IIS**。在 **Web Site** 文件夹下,找到 **Sharepoint Central Administration v3**。右键单击以打开属性。在 **Properties** 弹出窗口中,单击 **Home Directory** 选项卡,找到 **Local Path**。

a) 打开 web.config 文件,并遵循 **Section** **4.1** 中指定的相同步骤。

b) 在此处,我们在指定 Role Provider 的 **defaultProvider** 信息时需要非常小心。在 **Role Manager** 属性中,将 **AspNetWindowsTokenRoleProvider** 添加为 defaultProvider。这是必需的,因为 **Central Administration** 仍使用 Windows 身份验证作为角色提供程序。请参见下图

c) 保存 web.config 文件。

为 Internet 站点启用表单身份验证

使用 Central Administration 为 internet 站点启用表单身份验证非常简单。以下步骤将介绍如何启用表单身份验证。

a) 浏览到 **Central Administration** 网站。选择 **Application Management** 选项卡。

b) 在 **Application Management** 选项卡下,在 **Application Security** 部分,单击 **Authentication Providers** 链接。请参见下图

c) 选择 Extranet Web Application。您将看到 extranet web 应用程序的 **Default** 和 **Internet** 区域。在此,我们将为 Internet 应用程序配置表单身份验证。请参见下图

d) 单击 **Internet** 区域选项。将打开 **Edit Authentication** 页面。将 **Authentication Type** 选择为 **Forms**。选中 **enable anonymous** **access** 复选框,并提供 **membership** 和 **role manager** 名称。提供信息后,单击 **Save** 按钮。请参见下图

现在我们已成功为 internet 站点启用了表单身份验证。要证明表单身份验证确实与我们的数据存储一起工作,我们需要将用户添加到站点。以下步骤将介绍如何将用户添加到站点。

e) 浏览到 extranet 网站。在本例中,它是 http://ec4-netp-148429:4040

f) 单击 **Site Actions** à **Site Settings** à **People And Groups**。请参见下图

g) 单击 **New** **à** **Add User**。

h) 在“添加用户”页面上,输入我们之前创建的用户名为 testFBA,并为用户提供权限。请参见下图

现在我们已成功创建了用户并授予了权限。以下步骤将介绍如何测试表单身份验证。

i) 要测试表单身份验证,请浏览 internet 站点。在本例中,它是 http://ec4-netp-148429:4041

j) 现在系统将重定向到“登录”页面。请参见下图

k) 输入 **testFBA** 作为用户名,**password** 作为密码,然后单击 **Sign In** 按钮。请参见下图

现在我们已成功通过表单身份验证登录到 internet 站点。

作者

Nagendra Gunaga 在 IT 行业拥有 5.8 年的经验。他的经验涵盖 .Net Framework、C#.Net、ADO.Net、ASP.Net、SQL Server 和 Microsoft Office SharePoint Server。

© . All rights reserved.