程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 如何實現ASP.NET網站個性化

如何實現ASP.NET網站個性化

編輯:關於ASP.NET

如今,個性化是大多數Web應用程序的一個關鍵部分。TechRepublic和Amazon就是典型的例子,它們能夠記住用戶的某些特征。應用ASP.NET 1.x實現這一功能需要完成一些額外的工作,並要使用Session對象,但2.0版本簡化了個性化過程。

個性文件

ASP.NET 2.0 Profile系統允許你輕松存儲用戶的相關信息。你定義與每名用戶有關的屬性,並將它存儲在他們的個性文件中。個性文件數據可以用程序方便地訪問。與其它保存文件一樣,它必須被存儲,且個性文件默認使用SQL Server。

Profile系統以提供程序模型為基礎,特殊的Profile提供程序負責將屬性值序列化和解序列化到某個數據倉庫中。.NET Framework默認使用一個SqlProfileProvider類,它使用一個SQL Server數據庫表來存儲數據。

系統配置

在使用ASP.NET 2.0的個性文件特性之前,必須對Web服務器進行正確配置,使其支持這一特性。默認情況下,個性文件特性使用一個SQL Server終端,但你也可以建立自己的提供程序。在本文中,我主要討論標准的SQL Server終端,它使用默認的SqlProfileProvider類。

SQL Server支持版本7.0、2000和2005。要配置一個支持SQL Server的系統,首先應配置數據庫服務器,最後是ASP.NET平台。

.NET Framework 2.0中包含正確配置ASP.NET環境的工具。如果你使用了SQL Server 2005精簡版和Visual Studio,就不必進行配置。如果沒有應用上述程序,第一步是注冊一個SQL Server連接。使用隨.NET Framework安裝的命令行工具Aspnet_regsql.exe即可完成此項操作。在我的機器上,此工具的路徑為:

C:WindowsMicrosoft.NETv2.0.50727aspnet_regsql.exe 

這個工具中包含大量的選項,你可以通過命令行選項(-?)詳細閱讀。在我的開發系統中,我使用現有的SQL Server 2000。下面的命令通過在指定服務器上建立必要的數據庫來進行環境配置。

Aspnet_regsql.exe –A p –E –S database_server_name 

命令行開關E告訴系統用當前用戶證書進行驗證。開關S允許你指定數據庫服務器名稱。開關A說明增加哪個選項,後面的p指明增加個性文件支持。執行此命令即可建立一個SQL Server數據庫。數據庫的默認名稱為aspnetdb,但你也可以用命令行開關d撤銷它,開關d允許你指定一個現有的數據庫。

現在已建立一個SQL Server環境,接下來應對ASP.NET 2.0進行配置,使其利用連接和個性文件。進入IIS管理界面,查看ISS網站(Web Sites)屬性並選擇ASP.NET標簽,即可激活ASP.NET環境屬性。選擇ASP.NET標簽上的編輯配置(Edit Configuration)按鈕。驗證(Authentication)標簽包含一個角色(Roles)區,其中的角色管理(Role Management)被激活(應查看這一點)。默認的SQL Server(LocalSqlServer)連接字符串在通用(General)標簽中指定。我的開發環境使用下面的連接字符串:

data source= database_server_name;Integrated Security=SSPI;

Initial Catalog=aspnetdb;User Instance=false

將這些改變保存在ASP.NET環境中,把它連接到前面配置的SQL Server實例中。配置好平台後,你就可以開始執行。

定義元素

個性文件中使用的數據元素在web.config文件中建立與保存(即被保存的數據值在那個文件中定義)。實際值(對不同用戶而言)保存在一個終端數據倉庫中。你可以指定每個屬性的名稱、數據類型和數據序列化的方式。

屬性的數據類型與.NET中的有效標准數據類型相同。序列化選項一般依賴於被存儲的數據類型,但共有四個序列化選項:

ProviderSpecific:默認Profile提供程序決定如何序列化屬性值。

字符串:屬性值轉換成一個字符串。

Xml:屬性值轉換成XML形式。

二進制:屬性值轉換成二進制形式。

在屬性元素中定義的個性文件元素包含在一個個性文件元素中,它位於web.config文件的system.web部分。列表A中的web.config包括一個應用前面個性文件支持的個性文件片斷。它將使用兩個個性文件項目——FirstName和LastName——它們保存字符串值並允許匿名用戶。

匿名用戶和認證用戶均可應用個性文件特性。前面的web.config文件使用個性文件元素的allowAnonymous屬性,並激活應用程序匿名支持(anonymousIdentification元素),從而指定匿名支持。

使用代碼

正確配置環境後,就可以方便地在你的.NET代碼中應用個性文件元素。列表B中的簡單C#代碼使用個性文件元素來存儲並顯示數據值,它利用包含在System.Web命名空間中的Profile類。代碼中包含在代碼分離文件後的ASP.NET文件。

列表C包含定制代碼的代碼分離(codebehind)。第一個按鈕存儲個性文件域中每個文本域的值。第二個按鈕從個性文件域中恢復值,並用這些值填充文本域。

個性化更加簡化

個性化只是ASP.NET 2.0許多新特性中的一個。經過幾個配置步驟,你就可以通過標准的web.config文件和Profile類編碼,方便地為應用程序增加個性化特性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved