一,Profile介绍
能够存储和使用唯一与用户对应的信息,展现个性化版本的web应用程序,用户的唯一身份标识在再次访问时识别用户。
asp.net提供程序模型,此模型的实现牵涉到三个不同的元素:提供程序类,配置层和存储层。
提供程序类:提供了通过编程接口来执行通用任务,如成员角色管理,应用程序状态管理。
配置层:提供用于标识和实例化实际提供程序的信息。
存储层:存储数据的物理介质。
Profile工作原理
当Web应用程序加载,ProfileBase类读取Web.Config文件相关配置,将读取的属性动态实例化ProfileCommon类,将ProfileCommon封装到HttpContext类的Profile属性,然后HttpContext类封装为Page类的Context属性。
二,asp.net的提供程序
成员资格(SqlMembershipProvider类)
角色管理(SqlRoleProvider类)
个性化配置(SqlProfileProvider类)
Web部件个性化配置(SqlPersonalizationProvider类)
Web事件(SqlWebEventProvider类)
profile的两个层次,例如页面上的profile配置文件,然后就是对sql数据库操作的SqlProfileProvider
提供程序的基类派生于一个公共类,即ProviderBase类,提供了可重写的Initialize方法,从配置文件中读取信息并初始化Provider模型。
三,Profile配置文件实例
<profile enabled="true|false" inherits="fully qualified type reference" automaticSaveEnabled="true|false">
<properties>在此添加属性</properties>
<providers>提供程序设置</providers>
</profile>
enabled表示提供程序是否启用;inherits表示继承项,如果某些属性在类中,那么就可以把类放在其中;automaticSaveEnabled表示是否自动保存在数据库中;defaultProvider表示为提供程序命名,与provides的name属性值相同。
<
<profile enabled="true" defaultProvider="SqlProvider">
<providers>
<!---------在此链接数据库字符串的名字跟数据库链接的name属性值相等-------------------->
<add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" applicationName="测试Profile保存购物车" connectionStringName="SqlServices"/>
</providers>
<properties>
<add name="ShopoingCart" type="Cart" allowAnonymous="true" serializeAs="Binary"/>
<!-----添加用户信息,用于匿名用户向认证用户迁移--->
<add name="userName" defaultValue="游客" allowAnonymous="true"/>
<add name="userState" defaultValue="结账" allowAnonymous="true"/>
</properties>
</profile>
四,asp.net实现购物车
购物的商品类:
id,name,price,quality
购物车类:
属性:包含购买商品的集合,返回购物车中商品的集合,返回购物车中商品的总价
方法:添加商品,删除商品
购物车类是购物商品类的容器