个性化用户配置概述、Profile配置节详细介绍

 一、基本内容
    个性化用户配置将配置信息与单个用户关联,用户的数据存储在ASP.NET2.o提供的数据库中,所以能够持久保存。以下几点需要注意:1.存储的数据可以是与用户有关的数据,如果背景颜色、数据显示的条数等等。2.所存储的数据可以是简单数据类型,如String、Int等,也可以是开发人员自己定义的对象。3.默认情况下支持的是注册用户,可以显示声明allowAnonymous=true来实现对匿名用户的支持。4.默认情况下使用的数据库是SqlExpress,可以通过修改Web.Config文件中的ConnectionString和使用aspnet_regsql工具,实现对SqlServer2000数据库的支持。第四部分会给出具体方法。

    二、web.config中<profile>的详细配置

    <profile enabled="true|false" inherits="fully qualified type reference" automaticSaveEnabled="true|false"
    defaultProvider
="provider name">
      
<properties>
        
<add name="property name" type="fully qualified type reference" provider="provider name"
        serializeAs
="String|Xml|Binary|ProviderSpecific" allowAnonymous="true|false"
        defaultValue
="default property value" readOnly="true|false" customProviderData="data for a custom profile provider" />
        
<clear />
        
<remove name="property name" />
        
<group name="group name">
          
<add name="property name" type="fully qualified type reference" provider="provider name"
          serializeAs
="String|Xml|Binary|ProviderSpecific" allowAnonymous="true|false"
          defaultValue
="default property value" readOnly="true|false" customProviderData="data for a custom profile provider" />
          
<remove name="property name" />
        
</group>
      
</properties>
      
<providers>
        
<add name="provider name" type="fully qualified type reference" connectionStringName="connection string identifier"
        commandTimeout
="number of seconds before a command times out" description="description of the provider instance"
        applicationName
="application name for stored profile information" />
        
<remove name=" provider name" />
        
<clear/>
      
</providers>
    
</profile>

    以上配置是从MSDN中整理出来的,看上去眼花缭乱的都快晕了,下面给出分解的配置,让我们来慢慢消化。
    Profile的基本结构
<profile
    
enabled="true|false"
    inherits
="fully qualified type reference"
    automaticSaveEnabled
="true|false"
    defaultProvider
="provider name">
    
<properties></properties>
    
<providers></providers>
</profile>

属性 

属性

说明

enabled

可选的 Boolean属性。

指定是否启用 ASP.NET 用户配置文件。如果为 true,则启用 ASP.NET 用户配置文件。

默认值为 true

defaultProvider

可选的 String属性。

指定默认配置文件提供程序的名称。

有关更多信息,请参见 Provider

默认值为 AspNetSqlProfileProvider

inherits

可选的 String属性。

包含从 ProfileBase 抽象类派生的自定义类型的类型引用。ASP.NET 动态地生成一个从该类型继承的 ProfileCommon类,并将该类放在当前 HttpContextProfile 属性中。

automaticSaveEnabled

可选的 Boolean属性。

指定用户配置文件是否在 ASP.NET 页执行结束时自动保存。如果为 true,则用户配置文件在 ASP.NET 页执行结束时自动保存。

只有在 ProfileModule 对象检测到某一用户配置文件已修改的情况下,该模块才保存该配置文件。也就是在 IsDirty 属性为 true的情况下。有关更多信息,请参见 ASP.NET 配置文件属性

默认值为 true

子元素 

元素

说明

properties

必选的元素。

定义用户配置文件属性和属性组的集合。

providers

可选的元素。

定义配置文件提供程序的集合。

父元素 

元素

说明

configuration

指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

为 ASP.NET 配置节指定根元素。


    profile 的 properties 元素:

<properties>
    
<add />
    
<clear />
    
<remove />
    
<group></group>
</properties>

子元素 

元素

说明

add

可选的元素。

向用户配置文件添加属性。

clear

可选的元素。

从用户配置文件中清除以前定义的所有属性。

group

可选的元素。

定义用户配置文件属性的分组。

remove

可选的元素。

从用户配置文件中移除属性。

父元素 

元素

说明

configuration

指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

为 ASP.NET 配置节指定根元素。

profile

为应用程序配置用户配置文件。


    profile 的 properties 的 add 元素:

<add 
    
name="property name" 
    type
="fully qualified type reference"
    provider
="provider name"
    serializeAs
="String|Xml|Binary|ProviderSpecific"
    allowAnonymous
="true|false"
    defaultValue
="default property value"
    readOnly
="true|false"
        customProviderData
="data for a custom profile provider"
/>

属性 

属性

说明

name

必选的 String属性。

指定属性名。该值用作自动生成的配置文件类的属性的名称,并用作该属性在 Properties 集合中的索引值。该属性的名称不能包含句点 (.)。

有关自动生成用户配置文件属性的更多信息,请参见 ASP.NET 配置文件属性概述

type

可选的 String属性。

指定属性类型。

默认值为 String

provider

可选的 String属性。

指定用于存储和检索属性值的配置文件提供程序。provider属性的值是 providers 元素中指定的某个配置文件提供程序的名称。如果未指定提供程序名称,则使用 profile 元素中指定的默认提供程序。有关配置文件提供程序的更多信息,请参见 ASP.NET 配置文件提供程序

serializeAs

可选的 SettingsSerializeAs 属性。

指定数据存储区中属性值的序列化格式。默认序列化格式视具体的提供程序而定。实际所使用的序列化由提供程序确定;对于 SQL 提供程序,则为 String序列化。

allowAnonymous

可选的 Boolean属性。

指定在应用程序用户是匿名用户的情况下是否可以获取或设置属性。

如果设置为 true,则在应用程序用户是匿名用户的情况下可以获取或设置属性。

默认值为 false

defaultValue

可选的 String属性。

如果数据存储区中没有 Profile属性的值,则按如下所示指定默认值:

· 如果使用 XML 序列化对属性 (Property) 类型进行了序列化处理,则此属性 (Attribute) 可以设置为表示属性 (Property) 类型的序列化实例的 XML 字符串。

· 如果使用二进制序列化对属性 (Property) 类型进行了序列化处理,则此属性 (Attribute) 可以设置为表示属性 (Property) 类型的序列化实例的 Base-64 编码字符串。

·如果属性为引用类型,则可以使用 Stringnull值指示 Profile属性应为未初始化的配置文件返回 null

readOnly

可选的 Boolean属性。

指定是否只能读取而不能设置属性。

如果设置为 true,则可以读取但不可以设置属性。

默认值为 false

customProviderData

可选的 String属性。

指定 customProviderData属性 (Attribute) 可以设置为任意字符串值,以供属性 (Property) 的配置文件提供程序使用。如果设置了此属性 (Attribute),则该值放置在属性 (Property) 的 Attributes 集合中,通过名称 "CustomProviderData"进行索引。

子元素

无。

父元素 

元素

说明

configuration

指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中的根元素。

system.web

为 ASP.NET 配置节指定根元素。

profile

为应用程序配置用户配置文件。

properties

定义用户配置文件属性和属性组的集合。

 

    profile 的 properties 的 clear 元素:
    这个没啥好说的,<clear />从用户配置文件中清除以前定义的所有属性和组。

    profile 的 properties 的 remove 元素:
    <remove name="property name" />:从用户配置文件属性组移除属性。

属性

说明

name

必选的 String属性。

指定要从集合中移除的属性定义的名称。


    profile 的 properties 的 group 元素:
<group name="group name">
    
<add />
    
<remove./>
</group>

属性 

属性

说明

name

必选的 String属性。

属性组的名称。此值用作自动生成的组配置文件类的标识符。该组的名称不能包含句点 (.)。

有关自动生成用户配置文件属性的更多信息,请参见 ASP.NET 配置文件属性概述

子元素 

元素

说明

add

可选的元素。

向用户配置文件属性组添加属性。

remove

可选的元素。

从用户配置文件属性组移除属性。


    profile 的 group 的 add 元素:

<add 
    
name="property name" 
    type
="fully qualified type reference"
    provider
="provider name"
    serializeAs
="String|Xml|Binary|ProviderSpecific"
    allowAnonymous
="true|false"
    defaultValue
="default property value"
    readOnly
="true|false"
    customProviderData
="data for a custom profile provider"
/>

属性

 属性

说明

name

必选的 String属性。

指定属性名。该值用作自动生成的配置文件类的属性的名称,并用作该属性在 Properties 集合中的索引值。该属性的名称不能包含句点 (.)。

有关自动生成用户配置文件属性的更多信息,请参见 ASP.NET 配置文件属性概述

type

可选的 String属性。

指定属性类型。

默认值为 String

provider

可选的 String属性。

指定用于存储和检索属性值的配置文件提供程序。此属性的值是 providers 元素中指定的某个配置文件提供程序的名称。如果未指定提供程序名称,则使用 profile 元素中指定的默认提供程序。有关配置文件提供程序的更多信息,请参见 ASP.NET 配置文件提供程序

serializeAs

可选的 SettingsSerializeAs 属性。

指定数据存储区中属性值的序列化格式。默认序列化格式视具体的提供程序而定。实际所使用的序列化由提供程序确定;对于 SQL 提供程序,则为 String序列化。

allowAnonymous

可选的 Boolean属性。

指定在应用程序用户是匿名用户的情况下是否可以获取或设置属性。

如果设置为 true,则在应用程序用户是匿名用户的情况下可以获取或设置属性。

默认值为 false

defaultValue

可选的 String属性。

指定当数据存储区中的 Profile属性没有值时所使用的默认值。

如果使用 XML 序列化对属性 (Property) 类型进行了序列化处理,则此属性 (Attribute) 可以设置为表示属性 (Property) 类型的序列化实例的 XML 字符串。

如果使用二进制序列化对属性 (Property) 类型进行了序列化处理,则此属性 (Attribute) 可以设置为表示属性 (Property) 类型的序列化实例的 Base-64 编码字符串。

如果属性为引用类型,则可以使用 stringnull指示 Profile属性应为未初始化的配置文件返回 null

readOnly

可选的 Boolean属性。

指定是否只能读取而不能设置属性。

如果设置为 true,则可以读取但不可以设置属性。

默认值为 false

customProviderData

可选的 String属性。

指定供属性的配置文件提供程序使用的字符串值。此属性可以设置为任何字符串值。

如果设置了 customProviderData属性 (Attribute),则该值放置在属性 (Property) 的 Attributes 集合中,通过名称 "CustomProviderData"进行索引。


     profile 的 group 的 remove 元素:
    <remove name="property name" />

属性

说明

name

必选的 String属性。

指定要从集合中移除的属性定义的名称。


    profile 的 providers 元素:

<providers>
    
<add />
    
<remove/>
    
<clear/>
</providers>

子元素

 元素

说明

add

可选的元素。

向配置文件提供程序的集合添加提供程序。

clear

可选的元素。

从配置文件提供程序的集合中移除提供程序。

remove

可选的元素。

从集合中清除以前定义的所有配置文件提供程序。


    profile 的 providers 的 add 元素:
<add 
    
name="provider name" 
    type
="fully qualified type reference"
    connectionStringName
="connection string identifier"
    commandTimeout
="number of seconds before a command times out"
    description
="description of the provider instance"
    applicationName
="application name for stored profile information"
/>

属性 

属性

说明

name

必需的 String属性。

指定提供程序实例的名称。这是用于 <profile> 元素的 defaultProvider属性的值,该值将提供程序实例标识为默认的配置文件提供程序。该提供程序的 name还用于在 Providers 集合中对该提供程序进行索引。

type

必需的 String属性。

指定实现 ProfileProvider 抽象基类的类型。

connectionStringName

必需的 String属性。

指定在 <connectionStrings> 元素中定义的连接字符串的名称。指定的连接字符串将由正在添加的提供程序使用。

applicationName

可选的 String属性。

指定数据源中存储配置文件数据的应用程序的名称。该应用程序名称使得多个 ASP.NET 应用程序能够使用同一个数据库,而不会遇到不同应用程序存在重复配置文件数据的情况。或者,通过指定相同的应用程序名称,多个 ASP.NET 应用程序可以使用相同的配置文件信息。

如果未指定此属性 (Attribute),则 .NET Framework 附带的配置文件提供程序使用 ApplicationName 属性 (Property) 的 ApplicationVirtualPath 值。

commandTimeout

可选的 Int32属性。

指定在向成员资格数据源发出的命令超时之前等待的时间(以秒为单位)。SQL 提供程序在创建 SqlCommand对象时,使用该超时属性。默认情况下,ASP.NET 配置中并未设置该属性。因此,使用 ADO.NET 默认值 30 秒。如果设置了该属性,则 SQL 提供程序对向数据库发出的所有 SQL 命令使用已配置的超时值。

默认值为 30(ADO.NET 默认值)。

description

可选的 String属性。

指定配置文件提供程序实例的说明。


    profile 的 providers 的 remove 元素:
    <remove name=" provider name" />:从用户配置文件提供程序集合中移除配置文件提供程序实例。

属性

说明

name

必选的 String属性。

要从集合中移除的配置文件提供程序对象的名称。


     profile 的 providers 的 clear 元素:
    <clear/>:从用户配置文件提供程序集合中移除所有配置文件提供程序实例。

posted @ 2008-04-16 17:53  scgw  阅读(740)  评论(0编辑  收藏  举报