ASP.NET 配置文件属性概述

更新:2007 年 11 月

在许多应用程序中,需要存储并使用对用户唯一的信息。用户访问站点时,您可以使用已存储的信息向用户显示 Web 应用程序的个性化版本。个性化应用程序需要大量的元素:必须使用唯一的用户标识符存储信息,能够在用户再次访问时识别用户,然后根据需要获取用户信息。若要简化应用程序,可以使用 ASP.NET 配置文件功能,该功能可为您执行所有上述任务。

ASP.NET 配置文件功能将信息与单个用户关联,并采用持久性的格式存储这些信息。通过配置文件,可以管理用户信息,而无需创建和维护自己的数据库。此外,通过使用可从应用程序中的任何位置访问的强类型 API,就可以借助 ASP.NET 配置文件功能使用相关的用户信息。

可以使用配置文件存储任何类型的对象。配置文件功能提供了一项通用存储功能,使您能够定义和维护几乎任何类型的数据,同时仍可用类型安全的方式使用数据。

ASP.NET 配置文件的工作方式

若要使用配置文件,首先应通过修改 ASP.NET Web 应用程序的配置文件来启用配置文件。要在配置中指定配置文件提供程序,该提供程序是执行存储和检索配置文件数据等低级任务的基础类。可以使用 .NET Framework 中包括的配置文件提供程序(会将配置文件数据存储在 SQL Server 中),也可以按照 实现配置文件提供程序 主题中描述的那样创建并使用自己的配置文件提供程序。可以指定连接到所选的数据库的 SqlProfileProvider 实例,也可以使用将配置文件数据存储在本地 Web 服务器上的默认 SqlProfileProvider 实例。

通过定义要维护其值的属性的列表,可以对配置文件功能进行配置。例如,您可能需要存储用户的邮政编码,以使您的应用程序可以提供特定于区域的信息,如天气预报等。在配置文件中,应定义一个名为 PostalCode 的配置文件属性。配置文件的 profile 节与如下所示类似:

<profile>
  <properties>
    <add name="PostalCode" />
  </properties>
</profile>

应用程序运行时,ASP.NET 会创建一个 ProfileCommon 类,该类是一个动态生成的类,从 ProfileBase 类继承而来。动态的 ProfileCommon 类包括根据在应用程序配置中指定的配置文件属性定义创建的属性。然后,会将此动态 ProfileCommon 类的实例设置为当前 HttpContextProfile 属性的值,并且可在应用程序的页中使用。

在应用程序中,可以收集要存储的值,并将其赋值给已定义的配置文件属性。例如,应用程序的主页可能包含提示用户输入邮政编码的文本框。用户输入邮政编码时,可以设置 Profile 属性,以存储当前用户的值,如下面的示例所示:

Profile.PostalCode = txtPostalCode.Text
Profile.PostalCode = txtPostalCode.Text;

为 Profile.PostalCode 设置值时,会自动为当前用户存储该值。无需编写任何代码确定当前用户的身份,也无需将值显式地存储于数据库中,该配置文件功能将为您执行这些任务。

如果要使用该值,可以采用与设置该值基本相同的方法获取该值。例如,下面的代码示例演示如何调用名为 GetWeatherInfo 的假设函数,从而将其传递给配置文件中存储的当前用户的邮政编码:

weatherInfo = GetWeatherInfo( Profile.PostalCode )
weatherInfo = GetWeatherInfo( Profile.PostalCode );

无需显式确定用户身份或执行任何数据库查找。只需从配置文件中获取属性值,便使 ASP.NET 可以执行必要的操作,从而标识当前用户并查找持久性配置文件存储区中的值。

请参见

概念

ASP.NET 配置文件属性概述

ASP.NET 配置文件属性的用户标识

定义 ASP.NET 配置文件属性

ASP.NET 配置文件提供程序