Profile作用
2012-06-15 22:07 shy_carson 阅读(1945) 评论(0) 收藏 举报(1):为每个用户存储配置信息(存储和使用唯一与用户对应的信息,用户的唯一身份标识在再次访问时识别用户)
(2):支持强类型(如购物车对象)
在使用Session 和Application 对象时,首先,要使用字符串定义一个
名称,然后将需要存储的信息保存起来。当这些对象中获取数据时,系统返回
的都是Object类型的对象,而不对其加以区分。但是Profile属性中存储的用
户配置信息是强类型。也就是,系统会自动对用户配置的信息的类型加以区分。
(3):数据长期存储: aspnetdb
(4):支持匿名名用户
例如:去当当网买一本书,在没有登录时,是可以将书添加到购物车中的,
但是在结账时,必须登录,但是购物车中的内容不会丢失。只是角色的改变。
这一点说明了,即使用户没有注册登录,profile属性也可以存储其个性化的
配置信息。Profile属性主要是根据客户端浏览器中存储的Cookie标记,实现
对匿名用户的区分。同时,使用SQLSERVER数据库来存储匿名用户的配置信息。
3:profile的数据存储
默认情况下,Profile的内容会保存在SQLSERVER Express数据库aspnetdb中。
注册微软默认的数据库aspnetdb 在visual studio 命令提示符中输入 aspnet_regsql
4:配置Profile
web.config的profile配置节
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
<profile enabled="true|false" inherits="fully qualified type reference" automaticSaveEnabled="true|false" defaultProvider="provider name">
<properties>...</properties>
<providers>...</providers>
</profile>
enabled:该属性值为布尔值,指定是否启用Asp.net用户配置文件。如果为
true,则启用Asp.net用户配置文件。默认值为true.
defaultProvider:该属性用于定义默认的用户配置提供程序名称。其属性值为String类型,默认值是AspNetSqlProfileProvider
automaticSaveEnabled:该属性的值为布尔值, 指定用户配置文件在ASP.NET页执行结束时自动保存。如果为true,则用户配置文件在
ASP.NET页执行结束时自动保存。默认值为true
inherits:包含从ProfileBase抽象类派生的自定义类型的类型引用。
ProfileBase:该类提供对用户配置属性的非类型化访问。
properties:必选的元素。定义用户配置文件属性和属性的集合。
providers: 可选的元素。定义配置文件提供程序的集合。
例如:
<System.web>
<profile>
<properties>
<add name="Name" type="System.String" allowAnonymous="true">//allowAnonymous:表示允许存储匿名用户对该属性的配置信息。
</properties>
</profile>
</System.web>
实现设置和访问用户配置属性的源代码
//设置用户配置属性Name
Profile.Name=txtName.Text;
//访问用户配置属性Name
lbName.Text=Profile.Name;
三:简单实例应用(为匿名用户实现简单数据类型的个性化用户配置)
Profile_Demo1.aspx
关于该页面的配置
<anonymousIdentification enabled="true"/>
<profile>
<properties>
<add name="Name" allowAnonymous="true"/>
<add name="LastSubmit" type="System.DateTime" allowAnonymous="true"/>
<group name="Address">
<add name="City" allowAnonymous="true"/>
<add name="PostalCode" allowAnonymous="true"/>
</group>
</properties>
</profile>
必须为属性定义名称name,这样应用程序才能够通过Profile属性访问该属性。默认情况下,属性的数据类型是String类型,当然也可以给属性定义其他的数据类型。
属性组是对属性进行逻辑组织的一种方式,当属性较多(可能会出现重复的情况)而又不好区分,那么可以通过属性组的方式对属性进
行逻辑组织。
默认情况下,用户配置功能仅存储经过验证的注册用户的数据,不对匿名用户配置进行支持。因此必须显示启用,即将anonymousIdentification属性enabled设置为true.此外,在定义用户配置属性时,必须将其显示定义为可由匿名用户单独使用。即在匿名用户可访问的属性中设置allowAnonymous="true".这样应用程序就会存储匿名用户的配置信息了。
当应用程序编译以后,ASP.NET在应用程序的App_Data文件夹中,添加了一个ASPNETDB.MDF数据库文件。将信息保存在aspnet_Profile
数据表中。该表存储了用户配置属性的相关信息。该表中有5个列,UserId列:用于存储用户唯一标识。PropertyNames列用于存储用户
配置属性名称,也就是在<profile>中定义的属性。PropertyValueString列用于存储字符串类型的用户配置属性数据。例如,本例中
的Name,LastSubmit,City,和PostalCode等属性的值均保存在该列中。PropertyValuesBinary列中用于存储采用二进制序列化后用户配
置属性信息。LastUpdateDate列用于存储上次数据更新日期和时间。
Profile:个性化,asp.net中用来存储或者设置个性化数据的功能,通常是以二进制的形式将数据放入到数据源中.
例如:去当当网买一本书,在没有登录时,是可以将书添加到购物车中的,
但是在结账时,必须登录,但是购物车中的内容不会丢失。只是角色的改变。
这一点说明了,即使用户没有注册登录,profile属性也可以存储其个性化的
配置信息。Profile属性主要是根据客户端浏览器中存储的Cookie标记,实现
对匿名用户的区分。同时,使用SQLSERVER数据库来存储匿名用户的配置信息。
3:profile的数据存储
默认情况下,Profile的内容会保存在SQLSERVER Express数据库aspnetdb中。
注册微软默认的数据库aspnetdb 在visual studio 命令提示符中输入 aspnet_regsql
4:配置Profile
web.config的profile配置节
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
<profile enabled="true|false" inherits="fully qualified type reference" automaticSaveEnabled="true|false" defaultProvider="provider name">
<properties>...</properties>
<providers>...</providers>
</profile>
enabled:该属性值为布尔值,指定是否启用Asp.net用户配置文件。如果为
true,则启用Asp.net用户配置文件。默认值为true.
defaultProvider:该属性用于定义默认的用户配置提供程序名称。其属性值为String类型,默认值是AspNetSqlProfileProvider
automaticSaveEnabled:该属性的值为布尔值, 指定用户配置文件在ASP.NET页执行结束时自动保存。如果为true,则用户配置文件在
ASP.NET页执行结束时自动保存。默认值为true
inherits:包含从ProfileBase抽象类派生的自定义类型的类型引用。
ProfileBase:该类提供对用户配置属性的非类型化访问。
properties:必选的元素。定义用户配置文件属性和属性的集合。
providers: 可选的元素。定义配置文件提供程序的集合。
例如:
<System.web>
<profile>
<properties>
<add name="Name" type="System.String" allowAnonymous="true">//allowAnonymous:表示允许存储匿名用户对该属性的配置信息。
</properties>
</profile>
</System.web>
实现设置和访问用户配置属性的源代码
//设置用户配置属性Name
Profile.Name=txtName.Text;
//访问用户配置属性Name
lbName.Text=Profile.Name;
三:简单实例应用(为匿名用户实现简单数据类型的个性化用户配置)
Profile_Demo1.aspx
关于该页面的配置
<anonymousIdentification enabled="true"/>
<profile>
<properties>
<add name="Name" allowAnonymous="true"/>
<add name="LastSubmit" type="System.DateTime" allowAnonymous="true"/>
<group name="Address">
<add name="City" allowAnonymous="true"/>
<add name="PostalCode" allowAnonymous="true"/>
</group>
</properties>
</profile>
必须为属性定义名称name,这样应用程序才能够通过Profile属性访问该属性。默认情况下,属性的数据类型是String类型,当然也可以给属性定义其他的数据类型。
属性组是对属性进行逻辑组织的一种方式,当属性较多(可能会出现重复的情况)而又不好区分,那么可以通过属性组的方式对属性进
行逻辑组织。
默认情况下,用户配置功能仅存储经过验证的注册用户的数据,不对匿名用户配置进行支持。因此必须显示启用,即将anonymousIdentification属性enabled设置为true.此外,在定义用户配置属性时,必须将其显示定义为可由匿名用户单独使用。即在匿名用户可访问的属性中设置allowAnonymous="true".这样应用程序就会存储匿名用户的配置信息了。
当应用程序编译以后,ASP.NET在应用程序的App_Data文件夹中,添加了一个ASPNETDB.MDF数据库文件。将信息保存在aspnet_Profile
数据表中。该表存储了用户配置属性的相关信息。该表中有5个列,UserId列:用于存储用户唯一标识。PropertyNames列用于存储用户
配置属性名称,也就是在<profile>中定义的属性。PropertyValueString列用于存储字符串类型的用户配置属性数据。例如,本例中
的Name,LastSubmit,City,和PostalCode等属性的值均保存在该列中。PropertyValuesBinary列中用于存储采用二进制序列化后用户配
置属性信息。LastUpdateDate列用于存储上次数据更新日期和时间。
Profile:个性化,asp.net中用来存储或者设置个性化数据的功能,通常是以二进制的形式将数据放入到数据源中.
浙公网安备 33010602011771号