原创 .Net 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事件,用于匿名用户到注册用户的信息转移,也就是在未登录时的信息,在注册用户登录后不会丢失。

发表于 @ 2006年09月07日 11:01:00|评论(loading...)

新一篇: .Net PetShop 4.0的消息处理 | 旧一篇: .Net PetShop 4.0的缓存处理

用户操作
[即时聊天] [发私信] [加为好友]
fengfangfang
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
fengfangfang的公告

文章分类
收藏
    JBoss应用配置
    Windows平台下的安装与配置
    应用目录配置为根目录
    配置SSL
    .Net PetShop
    分布式数据库设计
    层次结构
    消息处理
    缓存处理
    配置文件属性管理
    Biztalk 实例
    从SQL Server中获取数据
    传输文本文件
    分割SQL记录集
    平面文件架构
    调用Web Services
    SQL Server 开发
    使用触发器自动编号
    分页存储过程
    复制表数据的SQL脚本生成器
    数据记录拼接聚合
    ASP.NET中使用Excel
    1 权限设置
    2 读取Excel文件
    3 写Excel文件
    4 上传并读取Excel文件
    Biztalk 开发
    使用动态端口输出文件
    如何快速创建架构
    架构和实例的验证
    架构的发布
    配置HTTP接收适配器
    重启Biztalk主机的秘密
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © fengfangfang