规划步骤 3:规划数据源设置
作者:Keith Newman 和 Robert McMurray
在生成网站的这一阶段,请考虑 ASP.NET 应用程序的数据存储需求。 以下部分介绍了 IIS 中可用的各种数据源设置:
3.1. 数据源连接字符串
连接字符串可为应用程序或提供程序提供它们在与特定数据库进行通信时所必需的信息。 通常情况下,连接字符串会提供服务器或数据库服务器的位置、要使用的特定数据库以及身份验证信息。 利用连接字符串,可以通过集中化的方式从托管代码应用程序连接到数据库。
添加配置设置时,将在本地级别以及继承该设置的所有子级别上添加该设置。
若要将连接字符串添加到 IIS,请提供以下信息:
- 指定连接字符串的名称。 此名称必须与你在应用程序代码中引用来从数据库检索数据的名称相同。
- 指定数据库所在的服务器。
- 指定数据库的名称。
- 提供凭据(如果未使用 Windows 集成安全性)。
3.2. ASP.NET 提供程序
ASP.NET 2.0 包含一系列将状态存储在数据库或其他数据存储中的服务。 提供程序是一个软件模块,它可以在这些服务之一与数据源之间实现统一的接口。 在 IIS 7 中,可以为应用程序设置默认的提供程序。 还可以配置提供程序属性。 例如,“用户”是一项基于提供程序的功能,其中一个提供程序将用户数据存储在 SQL 中,而另一个提供程序则将用户数据存储在文本文件中。
如果你有一个使用基于提供程序的服务在数据库或其他数据存储中存储数据的应用程序,则可以在 IIS 中添加该提供程序。 例如,ASP.NET 中的会话状态服务就是一项基于提供程序的服务,它通过将每用户会话状态存储在进程(位于主机应用程序所在应用程序域的内存中)、外部进程(“状态服务器进程”)的内存或 Microsoft SQL Server 数据库中来实现对它们的管理。
添加配置设置时,将在本地级别以及继承该设置的所有子级别上添加该设置。
若要为应用程序添加提供程序,请提供以下配置信息:
选择提供程序要提供的 IIS 功能:.NET 配置文件、.NET 角色或 .NET 用户。
选择提供程序类型。
为提供商输入名称。
如果所选功能为 .NET 用户,则选择以下所需的任意提供程序行为:
- 启用密码重置
- 启用密码检索
- 需要问题和答案
- 需要唯一电子邮件
- 采用安全格式存储密码
提供数据库的连接字符串名称。
输入应用程序的名称。
3.3. .NET 配置文件
.NET 配置文件功能可将信息与单个用户关联起来,并将该信息存储为持久性格式。 利用 .NET 配置文件,你无需创建和维护自己的数据库即可管理用户信息。
在 .NET 配置文件中,你可以添加属性或组。 属性将存储对用户唯一的信息(例如用户名)。 然后,你可以使用已存储的信息向用户提供应用程序的个性化版本。 组将相关属性组织在一起。 例如,可将用户地址信息的不同属性组织到一个 Address 组中。
如果你决定为 ASP.NET 应用程序添加配置文件属性或组,请提供以下信息:
- 对于每个配置文件属性,提供属性名称、数据类型(例如字符串或布尔值)、默认值、序列化选项(字符串、XML、二进制或特定于提供程序的内容)、是否是只读的以及是否对匿名用户可用。
- 对于每个配置文件组,提供组名称。
3.4. .NET 角色
角色为管理用户组的访问规则提供了一种便捷的方法。 创建用户后,你可以将他们分配给角色(在 Windows 中是将用户分配给组)。 例如,你可以创建一组页面,然后将其访问权限限制于某些特定的用户并由用户自己将这些页面存储在文件夹中。 然后,可以使用 IIS 8 来定义允许和拒绝访问该受限文件夹的规则。 如果未被授权的用户尝试查看受限制的页面,该用户会看到错误消息或被重定向到你指定的页面。
访问站点、应用程序或文件的匿名用户不能分配角色。
如果你要将某些安全设置应用于与所有现有组都不相同的用户组,可添加角色。
如果你决定为应用程序定义角色,请提供每个角色的名称。
重要
若要为应用程序配置角色,以前必须配置了 .NET 角色提供程序。
3.5. .NET 用户
通过将用户标识与应用程序关联起来,有助于管理该应用程序的身份验证、授权以及其他与安全相关的操作。
如果你要使用 IIS 定义用户名、电子邮件地址、密码和安全问题,以便在用户丢失或忘记其密码的情况下启动自动帐户重置,可添加用户。 如果启用了“.NET 角色”功能,你可以在创建用户时将其添加到角色中。
如果你决定为应用程序配置用户,请为每个用户提供以下信息:
- 用户名(必须是唯一的)。
- 电子邮件(必须采用标准格式:name@domain.com)。
- 密码(必须为强密码)。
- 问题(输入自定义问题或从列表中进行选择)。
- 前面提到的问题的答案。
- 给用户分配的角色。
重要
若要为应用程序配置用户,以前必须配置了 .NET 用户提供程序。