網站設計是為用戶提供重複訪問的個性化使得網站能夠記住用戶身份和其他資訊細節,並為每個用戶呈現個人化的環境。
ASP.NET提供個性化網站來為特定客戶的喜好和偏好地提供服務。
瞭解配置檔
ASP.NET個性化服務基於用戶配置檔。 用戶配置檔定義了該網站所需用戶的資訊種類。 例如,姓名,年齡,地址,出生日期和電話號碼。
此信息在應用程式的web.config
檔中定義,ASP.NET運行時讀取並使用它。這項工作是由個性化提供程式來完成的。
從用戶數據中獲取的用戶配置檔存儲在由ASP.NET創建的默認資料庫中。 您可以創建自己的資料庫來存儲配置檔。配置檔數據定義存儲在配置檔web.config
中。
示例
下麵創建一個ASP.Net空網站示例專案:Personalization ,我們希望應用程式記住用戶詳細資訊,如姓名,地址,出生日期等。在web.config
檔中的<system.web>
元素節點下添加配置檔詳細資訊。
<configuration>
<system.web>
<profile>
<properties>
<add name="Name" type ="String"/>
<add name="Birthday" type ="System.DateTime"/>
<group name="Address">
<add name="Street"/>
<add name="City"/>
</group>
</properties>
</profile>
</system.web>
</configuration>
在web.config
檔中定義配置檔時,配置檔可以通過當前HttpContext
中的Profile
屬性使用,也可以通過頁面使用。
按照配置檔中的定義添加文本框以接受用戶輸入,並添加一個用於提交數據的按鈕:
更新Page_load
事件方法以顯示配置檔資訊:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ProfileCommon pc = this.Profile.GetProfile(Profile.UserName);
if (pc != null)
{
this.txtname.Text = pc.Name;
this.txtaddr.Text = pc.Address.Street;
this.txtcity.Text = pc.Address.City;
this.Calendar1.SelectedDate = pc.Birthday;
}
}
}
為提交按鈕編寫以下處理程式,將用戶數據保存到配置檔中:
protected void Button1_Click(object sender, EventArgs e)
{
ProfileCommon pc = this.Profile.GetProfile(Profile.UserName);
if (pc != null)
{
pc.Name = this.txtname.Text;
pc.Address.Street = this.txtaddr.Text;
pc.Address.City = this.txtcity.Text;
pc.Birthday = this.Calendar1.SelectedDate;
pc.Save();
}
}
`
當頁面首次執行時,用戶需要輸入資訊。 但是,下次用戶的詳細資訊會自動加載。
add元素的屬性
除了已經使用的名稱和類型屬性之外,還有<add>
元素的其他屬性。下表說明了其中的一些屬性:
編號 | 屬性 | 描述 |
---|---|---|
1 | name |
屬性的名稱。 |
2 | type |
默認情況下,類型是字串,但它允許任何完全限定的類名作為數據類型。 |
3 | serializeAs |
序列化此值時使用的格式。 |
4 | readOnly |
只讀配置檔值不能更改,默認情況下該屬性為false 。 |
5 | defaultValue |
如果配置檔不存在或沒有資訊,則使用默認值。 |
6 | allowAnonymous |
一個布爾值,指示此屬性是否可以與匿名配置檔一起使用。 |
7 | Provider |
應該用來管理這個屬性的配置檔提供程式。 |
匿名個性化
匿名個性化允許用戶在識別自己之前個性化網站。 例如,Amazon.com允許用戶在登錄前添加購物車中的物品。要啟用此功能,可以將web.config
檔配置為:
<anonymousIdentification enabled ="true" cookieName=".ASPXANONYMOUSUSER"
cookieTimeout="120000" cookiePath="/" cookieRequiresSSL="false"
cookieSlidingExpiration="true" cookieprotection="Encryption"
coolieless="UseDeviceProfile"/>
上一篇:
ASP.NET自定義控件
下一篇:
ASP.NET錯誤管理