個性化
網站是為用戶的重復訪問而設計的。個性化允許一個網站記住用戶標識和其他信息細節,并且它給每個用戶提供了一個個人的環境。
ASP.NET 為滿足特性客戶的品味和喜好而個性化一個網站提供服務。
理解特征文件
ASP.NET 個性化服務基于用戶的特征文件。用戶特征文件定義了該網站需要用戶的信息。例如,名字,年齡,地址,出生日期和手機號碼。
這個信息被定義在應用程序的 web.config 文件中并且 ASP.NET 運行時間閱讀并使用它。這個工作由個性化提供者所完成。
用戶數據所含有的用戶特征文件被存儲在默認的 ASP.NET 創建的數據庫中。你可以創建你自己的數據庫來存儲特征文件。特征文件數據定義被存儲在配置文件 web.config 中。
例子
讓我們創建一個樣本網站,那里我們想要我們的應用程序記住用戶細節,像名字,地址,出生日期等。在 web.config 文件中用 元素添加特征文件細節。
<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"/> <add name="State"/> <add name="Zipcode"/> </group> </properties> </profile> </system.web> </configuration>當特征文件在 web.config 文件中被定義時,特征文件可以通過在當前的 HttpContext 中找到的 Profile 屬性使用并且通過頁面獲得。
添加 text box 來獲取在特征文件中定義的用戶輸入,添加一個 button 來提交數據:
為提交按鈕寫以下的句柄,將用戶數據存入特征文件中:
當頁面第一次執行時,用戶需要輸入信息。但是,下一次用戶的細節將被自動加載。
元素的屬性
除了我們已經使用過的名字和類型屬性,元素還有其它屬性。以下的表格展示了這些屬性中的一些:
name | 屬性的名字。 |
type | 類型默認是 string 但是它允許任何完全的類名稱作為數據類型。 |
serializeAS | 當序列化這個值時使用的格式。 |
readOnly | 只讀的特征文件值不能被改變,這個屬性默認是 false。 |
defaultValue | 一個默認的值,如果特征文件不存在或者沒有信息的話它被使用。 |
allowAnonymous | 一個指示這個屬性是否能和匿名文件使用的布爾值。 |
Provider | 應該被用來管理這個屬性的特征文件提供者。 |
匿名個性化
匿名個性化允許用戶在標識它們自己之前個性化網站。例如,Amazon.com 允許用戶在登錄前在購物車中添加物品。為了啟用此功能,web.config 文件可以被配置成以下:
<anonymousIdentification enabled ="true" cookieName=".ASPXANONYMOUSUSER" cookieTimeout="120000" cookiePath="/" cookieRequiresSSL="false" cookieSlidingExpiration="true" cookieprotection="Encryption" coolieless="UseDeviceProfile"/>