在許多應用程序中,需要存儲並使用對用戶唯一的信息。用戶訪問站點時,您可以使用已存儲的信息向用戶顯示 Web 應用程序的個性化版本。個性化應用程序需要大量的元素:必須使用唯一的用戶標識符存儲信息,能夠在用戶再次訪問時識別用戶,然後根據需要獲取用戶信息。若要簡化應用程序,可以使用 ASP.NET 配置文件功能,該功能可為您執行所有上述任務。
ASP.NET 配置文件功能將信息與單個用戶關聯,並采用持久性的格式存儲這些信息。通過配置文件,可以管理用戶信息,而無需創建和維護自己的數據庫。此外,通過使用可從應用程序中的任何位置訪問的強類型 API,就可以借助 ASP.NET 配置文件功能使用相關的用戶信息。
可以使用配置文件存儲任何類型的對象。配置文件功能提供了一項通用存儲功能,使您能夠定義和維護幾乎任何類型的數據,同時仍可用類型安全的方式使用數據。
ASP.NET 配置文件的工作方式
若要使用配置文件,首先應通過修改 ASP.NET Web 應用程序的配置文件來啟用配置文件。要在配置中指定配置文件提供程序,該提供程序是執行存儲和檢索配置文件數據等低級任務的基礎類。可以使用 .NET Framework 中包括的配置文件提供程序(會將配置文件數據存儲在 SQL Server 中),也可以按照實現配置文件提供程序主題中描述的那樣創建並使用自己的配置文件提供程序。可以指定連接到所選的數據庫的 SqlProfileProvider 實例,也可以使用將配置文件數據存儲在本地 Web 服務器上的默認 SqlProfileProvider 實例。
通過定義要維護其值的屬性的列表,可以對配置文件功能進行配置。例如,您可能需要存儲用戶的郵政編碼,以使您的應用程序可以提供特定於區域的信息,如天氣預報等。在配置文件中,應定義一個名為 PostalCode 的配置文件屬性。配置文件的 profile 節與如下所示類似:
<profile> <properties> <add name="PostalCode" /> </properties> </profile>
應用程序運行時,ASP.NET 會創建一個 ProfileCommon 類,該類是一個動態生成的類,從 ProfileBase 類繼承而來。動態的 ProfileCommon 類包括根據在應用程序配置中指定的配置文件屬性定義創建的屬性。然後,會將此動態 ProfileCommon 類的實例設置為當前 HttpContext 的 Profile 屬性的值,並且可在應用程序的頁中使用。
在應用程序中,可以收集要存儲的值,並將其賦值給已定義的配置文件屬性。例如,應用程序的主頁可能包含提示用戶輸入郵政編碼的文本框。用戶輸入郵政編碼時,可以設置 Profile 屬性,以存儲當前用戶的值,如下面的示例所示:
Profile.PostalCode = txtPostalCode.Text;
為 Profile.PostalCode 設置值時,會自動為當前用戶存儲該值。無需編寫任何代碼確定當前用戶的身份,也無需將值顯式地存儲於數據庫中,該配置文件功能將為您執行這些任務。
如果要使用該值,可以采用與設置該值基本相同的方法獲取該值。例如,下面的代碼示例演示如何調用名為 GetWeatherInfo 的假設函數,從而將其傳遞給配置文件中存儲的當前用戶的郵政編碼:
weatherInfo = GetWeatherInfo( Profile.PostalCode );
無需顯式確定用戶身份或執行任何數據庫查找。只需從配置文件中獲取屬性值,便使 ASP.NET 可以執行必要的操作,從而標識當前用戶並查找持久性配置文件存儲區中的值。
具體參考
http://msdn.microsoft.com/en-us/library/ms379605.aspx