程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .Net PetShop 4.0的配置文件屬性管理

.Net PetShop 4.0的配置文件屬性管理

編輯:關於.NET

.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事件,用於匿名用戶到注冊用戶的信息轉移,也就是在未登錄時的信息,在注冊用戶登錄後不會丟失。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved