文章教程

13.3技术解惑

8/31/2020 9:56:04 PM 人评论 次浏览

下面是文件Web.Config中一段完整的<profile>配置代码。

<profile>
   <properties>
   <add name="FirstName" defaultValue="??" allowAnonymous="true" />
   <add name="LastName" defaultValue="??" allowAnonymous="true" />
   <add name="PageVisits" type="Int32" allowAnonymous="true"/>
   <group name="Address">
    <add name="Street" allowAnonymous="true" />
    <add name="City" allowAnonymous="true" />
   </group>
   <group name="Preferences">
    <add name="ReceiveNewsletter" type="Boolean"
    defaultValue="false" allowAnonymous="true" />
   </group>
   <add name="ShoppingCart" type="ShoppingCart"
   serializeAs="Binary" allowAnonymous="true" />
   <add name="FavoriteColor" allowAnonymous="true" defaultValue="Red" />
   </properties>
  </profile>

Profile对象与Session对象十分相似,但是前者更好用一些。与Session对象相似是,Profile对象是相对于一个特定的用户的,也就是说,每个Web应用程序的用户都有他们自己的Profile对象。与Session对象不同的是,Profile对象是持久对象。如果你向Session中添加一个项,在你离开网站时,该项就会消失。而Profile则完全不同,当你修改Profile的状态时,修改在多个访问页之间均有效。

Profile使用Provider模式来存储信息。在默认情况下,user profile的内容会保存在SQL Server Express数据库中,该数据库位于网站的App_Data目录。另外,Profile是强类型的,它有强类型属性而Session对象仅仅是一个项集合。使用强类型是有它的道理的。例如,使用强类型就可以在Microsoft Visual Web Developer中使用智能感知技术,当键入Profile和一个点的时候,智能感知会弹出已经定义过的profile属性列表。


教程类别