ASP.NET 設定檔功能與 ASP.NET 成員資格、ASP.NET 角色管理以及其他 ASP.NET 功能使用同一基於提供者的結構。ASP.NET 設定檔功能是一個分層系統,其中設定檔功能的功能(提供類型化屬性值並系統管理使用者標識)與基礎資料存放區區分離。設定檔功能依賴於設定檔提供者(資料提供者)來執行儲存和檢索設定檔屬性值所需的後端任務。
1、預設設定檔提供者
ASP.NET 包含一個使用 Microsoft SQL Server 儲存資料的設定檔提供者。預設的 ASP.NET 電腦配置包含一個名為 AspNetSqlProfileProvider 的 SqlProfileProvider 預設執行個體,該執行個體串連至本機電腦上的 SQL Server。預設情況下,ASP.NET 設定檔功能使用提供者的此執行個體。或者,可以在應用程式的 Web.config 檔案中指定一個不同的預設提供者。
若要使用 SqlProfileProvider,首先必須建立 SqlProfileProvider 使用的 SQL Server 資料庫。可以通過運行以下路徑中的 Aspnet_regsql.exe 命令來建立資料庫:
systemroot/Microsoft .NET/SDK/版本
運行該工具時,可指定 -Ap 選項。下面的命令示範特定的文法,此文法用於建立使用 SqlProfileProvider 儲存 ASP.NET 設定檔所需的資料庫:
aspnet_regsql.exe -Ap
上面的樣本沒有為建立的資料庫指定名稱,因此將使用預設名稱。預設的資料庫名稱為 Aspnetdb。
如果通過使用整合式安全性的連接字串對設定檔提供者進行配置,則 ASP.NET 應用程式的進程帳戶必須具有串連至 SQL Server 資料庫的許可權。
說明: 如果使用 SQL Server 2005 Express Edition 資料庫,而安裝該資料庫時使用的是預設配置,且該資料庫與 Web 服務器在同一台電腦上,則 ASP.NET 將自動建立設定檔資料庫。
2、自訂設定檔提供者
在有些情況下,可能希望建立和使用自訂設定檔提供者。如果已經具有一個儲存使用者資訊的資料庫(如員工資料庫),如果需要使用 Microsoft SQL Server 之外的資料庫,或者需要使用不同的資料存放區區(如 XML 檔案),則經常需要這樣做。
使用者設定檔中儲存的屬性可完全由不同的設定檔提供者提供服務。因此,可以對來自多個資料來源的資料進行管理,以儲存單個使用者設定檔的資訊。