ASP.NET狀態管理之十(設定檔Profile)

來源:互聯網
上載者:User

在許多應用程式中,需要儲存並使用對使用者唯一的資訊。使用者訪問網站時,您可以使用已儲存的資訊向使用者顯示 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

 

 

 

http://aierong.cnblogs.com

Sql Server2005 Transact-SQL 新兵器學習總結之-總結
MS SQLDatabase Backup和恢複預存程序(加強版本)
sql server中分散式查詢隨筆(連結的伺服器(sp_addlinkedserver)和遠程登入映射(sp_addlinkedsrvlogin)使用小總結)
WAP開發資料站(最新更新)
自訂格式字串隨筆 (IFormattable,IFormatProvider,ICustomFormatter三介面的實現)
Mcad學習筆記之非同步編程(AsyncCallback 委託,IAsyncResult介面,BeginInvoke方法,EndInvoke方法的使用小總結)
Mcad學習筆記之通過反射調用類的方法,屬性,欄位,索引器(2種方法)
Mcad學習筆記之序列化(2進位和Soap序列化)
Mcad學習筆記之委託再理解(delegate的構造器,BeginInvoke,EndInvoke,Invoke4個方法的探討)
WinForm開發,表單顯示和表單傳值相關知識總結
Mcad學習筆記之Microsoft Windows服務
copy某目錄下的所有的目錄和檔案到目的目錄(目錄數據備份)
ASP.NET狀態管理之一(概括篇)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.