理解Asp.Net2.0的Profi
NET 2。0中,提供了ASP。NET成员资格管理、ASP。NET角色管理以及ASP。NET配置文件属性等功能。在本文中,重点探讨。Net PetShop 4。0配置文件属性管理的设计与实现。
配置文件属性用于给用户提供个性化的服务。在。Net PetShop 4。0中,与配置文件属性直接相同的命名空间如下:
PetShop。IProfileDAL
PetShop。OracleProfileDAL
PetShop。 SQLProfileDAL
PetShop。ProfileDALFactory
PetShop。Profile
从它们的命名空间就可以看出,配置文件属性管理也使用了工厂模...全部
NET 2。0中,提供了ASP。NET成员资格管理、ASP。NET角色管理以及ASP。NET配置文件属性等功能。在本文中,重点探讨。Net PetShop 4。0配置文件属性管理的设计与实现。
配置文件属性用于给用户提供个性化的服务。在。Net PetShop 4。0中,与配置文件属性直接相同的命名空间如下:
PetShop。IProfileDAL
PetShop。OracleProfileDAL
PetShop。
SQLProfileDAL
PetShop。ProfileDALFactory
PetShop。Profile
从它们的命名空间就可以看出,配置文件属性管理也使用了工厂模式。下面具体看一下各个命名空间的内容:
一、PetShop。
IProfileDAL命名空间
PetShop。IProfileDAL命名空间提供了一个接口IPetShopProfileProvider,该接口定义了十个方法,分别为:
GetAccountInfo
SetAccountInfo
GetCartItems
SetCartItems
UpdateActivityDates
GetUniqueID
CreateProfileForUser
GetInactiveProfiles
DeleteProfile
GetProfileInfo
这些方法有些是对购物车的处理,有些是对账户附属信息的处理,有些是对配置文件的处理。
二、PetShop。OracleProfileDAL和PetShop。SQLProfileDAL命名空间
这两个命名空间各自包含了一个PetShopProfileProvider类,该类是对接口IPetShopProfileProvider的实现。
当然,由命名空间的名字也可以看出,PetShop。OracleProfileDAL是连接Oracle数据库的,PetShop。SQLProfileDAL是连接SQL Server数据库的。
三、PetShop。
ProfileDALFactory命名空间
PetShop。ProfileDALFactory提供了一个自封装的类DataAccess,该类只有一个方法CreatePetShopProfileProvider,根据web。
config中的ProfileDAL设置,产生出符合IPetShopProfileProvider接口的PetShopProfileProvider类实例。当然,这正是典型的工厂模式。
四、PetShop。
Profile命名空间
PetShop。Profile命名空间中提供了一人自封装的类PetShopProfileProvider,该类继承了。Net框架ProfileProvider类,重写了Initialize、SettingsPropertyValueCollection、SetPropertyValues、DeleteProfiles、DeleteProfiles、DeleteInactiveProfiles、FindProfilesByUserName、FindInactiveProfilesByUserName、GetAllProfiles、GetAllInactiveProfiles和GetNumberOfInactiveProfiles方法,创建了一些静态方法。
创建的静态方法通过PetShop。ProfileDALFactory。DataAccess类实现对PetShopProfileProvider中方法的调用。
五、使用配置文件属性
在使用配置文件属性时,首先要在web。
config文件中添加配置文件属性的配置段。。Net PetShop 4。0的web。config文件中与配置文件属性相关的配置如下:
配置完后,就可以在ASP。
NET Web页面中通过如下方式使用:
Profile。AccountInfo=AddressForm。Address;
Profile。Save();
在上面添加的配置文件属性中ShoppingCart和WishList分别表示购物车和缺货登记,它们的类型都是业务逻辑层的Cart类,AccountInfo表示账户信息,但由于用户名密码的管理是由。
Net成员资格管理中实现的,其它的属性都是地址类信息,它在类型是PetShop。Model。AddressInfo。
另外,在Global。asax中的Profile_MigrateAnonymous事件,用于匿名用户到注册用户的信息转移,也就是在未登录时的信息,在注册用户登录后不会丢失。
。收起