Share via


ASP.NET 設定檔屬性概觀

更新:2007 年 11 月

許多應用程式可能會儲存、使用一些對使用者而言是唯一的資訊。您可以使用這些儲存的資訊,讓使用者造訪網站時,能體驗到您具有個人特色的 Web 應用程式。將應用程式個人化需要一些條件:您必須使用唯一的使用者識別項儲存資訊、當使用者再次造訪時能夠辨認出該使用者,而且還視需要擷取使用者資訊。若要簡化應用程式,則可以使用 ASP.NET 設定檔功能,為您執行所有這些工作。

ASP.NET 設定檔功能會將資訊與個別使用者產生關聯,並且以保存格式儲存資訊。設定檔可以讓您管理使用者資訊,而不需要建立和維護自己的資料庫。此外,ASP.NET 設定檔功能使用強型別 (Strongly Typed) API 讓使用者資訊成為可用,您可以在應用程式中的任何地方存取這些 API。

您可以使用設定檔儲存任何型別的物件。設定檔功能提供一般性的儲存功能,可以讓您定義和維護近乎所有種類的資料,同時仍然能夠以型別安全的方式使用資料。

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 類別的執行個體就會設定為目前 HttpContextProfile 屬性值,並且可以讓應用程式中的網頁使用。

您可以在應用程式中收集想要儲存的值,然後指派給定義的設定檔屬性。例如,應用程式的首頁可能包含提示使用者輸入郵遞區號的文字方塊。當使用者輸入郵遞區號時,就設定 Profile 屬性儲存目前使用者的值,如下列程式碼範例所示:

Profile.PostalCode = txtPostalCode.Text
Profile.PostalCode = txtPostalCode.Text;

當您設定 Profile.PostalCode 的值時,就會自動儲存目前使用者的值。您不需要撰寫任何程式碼判斷目前的使用者是誰,或是將值明確儲存在資料庫中,因為設定檔功能會為您執行這些工作。

當您想要使用值時,取得值的方式與設定的方式大致相同。例如,下列程式碼範例示範了如何呼叫名為 GetWeatherInfo 的虛數函式,然後將目前使用者儲存在設定檔中的郵遞區號傳遞給它:

weatherInfo = GetWeatherInfo( Profile.PostalCode )
weatherInfo = GetWeatherInfo( Profile.PostalCode );

您不需要明確判斷使用者是誰或執行任何資料庫查詢。只要從設定檔取得屬性值,讓 ASP.NET 執行必要的動作,就可以識別目前的使用者,並且查詢持續性設定檔存放區中的值。

請參閱

概念

ASP.NET 設定檔屬性概觀

ASP.NET 設定檔屬性的使用者識別

定義 ASP.NET 設定檔屬性

ASP.NET 設定檔提供者