PetShop 4.0的配置文件属性管理

.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文件中与配置文件属性相关的配置如下:

< profile  automaticSaveEnabled ="false"  defaultProvider ="ShoppingCartProvider" >
  
< providers >
    
< add  name ="ShoppingCartProvider"  connectionStringName ="SQLProfileConnString"  type ="PetShop.Profile.PetShopProfileProvider"  applicationName =".NET Pet Shop 4.0" />
    
< add  name ="WishListProvider"  connectionStringName ="SQLProfileConnString"  type ="PetShop.Profile.PetShopProfileProvider"  applicationName =".NET Pet Shop 4.0" />
    
< add  name ="AccountInfoProvider"  connectionStringName ="SQLProfileConnString"  type ="PetShop.Profile.PetShopProfileProvider"  applicationName =".NET Pet Shop 4.0" />
  
</ providers >
  
< properties >
    
< add  name ="ShoppingCart"  type ="PetShop.BLL.Cart"  allowAnonymous ="true"  provider ="ShoppingCartProvider" />
    
< add  name ="WishList"  type ="PetShop.BLL.Cart"  allowAnonymous ="true"  provider ="WishListProvider" />
    
< add  name ="AccountInfo"  type ="PetShop.Model.AddressInfo"  allowAnonymous ="false"  provider ="AccountInfoProvider" />
  
</ properties >
</ profile >

配置完后,就可以在ASP.NET Web页面中通过如下方式使用:

Profile.AccountInfo  =  AddressForm.Address;
Profile.Save();

在上面添加的配置文件属性中ShoppingCart和WishList分别表示购物车和缺货登记,它们的类型都是业务逻辑层的Cart类,AccountInfo表示账户信息,但由于用户名密码的管理是由.Net成员资格管理中实现的,其它的属性都是地址类信息,它在类型是PetShop.Model.AddressInfo。

另外,在Global.asax中的Profile_MigrateAnonymous事件,用于匿名用户到注册用户的信息转移,也就是在未登录时的信息,在注册用户登录后不会丢失。

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值