如今,个性化是大多数Web应用程序的一个关键部分。TechRepublic和Amazon就是典型的例子,它们能够记住用户的某些特征。应用ASP.NET 1.x实现这一功能需要完成一些额外的工作,并要使用Session对象,但2.0版本简化了个性化过程。
个性文件
ASP.NET 2.0 Profile系统允许你轻松存储用户的相关信息。你定义与每名用户有关的属性,并将它存储在他们的个性文件中。个性文件数据可以用程序方便地访问。与其它保存文件一样,它必须被存储,且个性文件默认使用SQL Server。
Profile系统以提供程序模型为基础,特殊的Profile提供程序负责将属性值序列化和解序列化到某个数据仓库中。.NET Framework默认使用一个SqlProfileProvider类,它使用一个SQL Server数据库表来存储数据。
系统配置
在使用ASP.NET 2.0的个性文件特性之前,必须对Web服务器进行正确配置,使其支持这一特性。默认情况下,个性文件特性使用一个SQL Server终端,但你也可以建立自己的提供程序。在本文中,我主要讨论标准的SQL Server终端,它使用默认的SqlProfileProvider类。
SQL Server支持版本7.0、2000和2005。要配置一个支持SQL Server的系统,首先应配置数据库服务器,最后是ASP.NET平台。
.NET Framework 2.0中包含正确配置ASP.NET环境的工具。如果你使用了SQL Server 2005精简版和Visual Studio,就不必进行配置。如果没有应用上述程序,第一步是注册一个SQL Server连接。使用随.NET Framework安装的命令行工具Aspnet_regsql.exe即可完成此项操作。在我的机器上,此工具的路径为:
C:\Windows\Microsoft.NET\v2.0.50727\aspnet_regsql.exe
这个工具中包含大量的选项,你可以通过命令行选项(-?)详细阅读。在我的开发系统中,我使用现有的SQL Server 2000。下面的命令通过在指定服务器上建立必要的数据库来进行环境配置。
Aspnet_regsql.exe –A p –E –S database_server_name
命令行开关E告诉系统用当前用户证书进行验证。开关S允许你指定数据库服务器名称。开关A说明增加哪个选项,后面的p指明增加个性文件支持。执行此命令即可建立一个SQL Server数据库。数据库的默认名称为aspnetdb,但你也可以用命令行开关d撤销它,开关d允许你指定一个现有的数据库。
现在已建立一个SQL Server环境,接下来应对ASP.NET 2.0进行配置,使其利用连接和个性文件。进入IIS管理界面,查看ISS网站(Web Sites)属性并选择ASP.NET标签,即可激活ASP.NET环境属性。选择ASP.NET标签上的编辑配置(Edit Configuration)按钮。验证(Authentication)标签包含一个角色(Roles)区,其中的角色管理(Role Management)被激活(应查看这一点)。默认的SQL Server(LocalSqlServer)连接字符串在通用(General)标签中指定。我的开发环境使用下面的连接字符串:
data source= database_server_name;Integrated Security=SSPI;
Initial Catalog=aspnetdb;User Instance=false
将这些改变保存在ASP.NET环境中,把它连接到前面配置的SQL Server实例中。配置好平台后,你就可以开始执行。