文件首頁
MySQL Connector/NET 開發人員指南
相關文件 下載本手冊
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb


MySQL Connector/NET 開發人員指南  /  ...  /  教學課程:Connector/NET ASP.NET 成員資格和角色提供者

6.2.1 教學課程:Connector/NET ASP.NET 成員資格和角色提供者

許多網站都提供讓使用者建立使用者帳戶的功能。然後他們可以登入網站並享受個人化的體驗。這需要開發人員建立資料庫表格來儲存使用者資訊,以及收集和處理此資料的程式碼。這對開發人員來說是一項負擔,而且開發的程式碼中可能會出現安全性問題。然而,ASP.NET 推出了成員資格系統。此系統是圍繞成員資格、設定檔和角色提供者的概念所設計,它們共同提供了實作使用者系統的所有功能,而這些功能以前必須由開發人員從頭開始建立。

目前,MySQL Connector/NET 包括適用於成員資格(或簡單成員資格)、角色、設定檔、工作階段狀態、網站地圖和 Web 個人化的 Web 提供者。

本教學課程將說明如何設定 ASP.NET Web 應用程式以使用 Connector/NET 成員資格和角色提供者。它假設您已安裝 MySQL Server、Connector/NET 和 Microsoft Visual Studio。本教學課程已使用 Connector/NET 6.0.4 和 Microsoft Visual Studio 2008 Professional Edition 進行測試。建議您在本教學課程中使用 6.0.4 或更新版本。

  1. 使用 MySQL 命令列用戶端程式 (mysql) 或其他合適的工具建立新的 MySQL 資料庫。資料庫使用的名稱並不重要,但請記錄下來。您會在稍後在本教學課程中建構的連接字串中指定它。此資料庫包含稍後會自動為您建立的表格,用於儲存有關使用者和角色的資料。

  2. 在 Visual Studio 中建立新的 ASP.NET 網站。如果您不確定如何執行此操作,請參閱第 6.4 節「教學課程:使用 LINQ 在實體上於 ASP.NET 中進行資料繫結」,其中示範了如何建立簡單的 ASP.NET 網站。

  3. MySql.DataMySql.Web 的參考新增至網站專案。

  4. 在您的系統上找到 machine.config 檔案,它是 .NET Framework 的組態檔。

  5. 搜尋 machine.config 檔案以尋找成員資格提供者 MySQLMembershipProvider

  6. 新增屬性 autogenerateschema="true"。適當的區段現在應該類似於以下範例。

    注意

    為了簡潔起見,已排除某些資訊。

    <membership>
     <providers>
       <add name="AspNetSqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider"
         ...
         connectionStringName="LocalSqlServer"
         ... />
       <add name="MySQLMembershipProvider"
         autogenerateschema="true"
         type="MySql.Web.Security.MySQLMembershipProvider, 
               MySql.Web, Version=6.0.4.0, Culture=neutral, 
               PublicKeyToken=c5687fc88969c44d"
         connectionStringName="LocalMySqlServer"
         ... />
     </providers>
    </membership>
    注意

    連接字串 LocalMySqlServer 連線到包含成員資格資料庫的 MySQL 伺服器。

    autogenerateschema="true" 屬性會導致 Connector/NET 在資料庫伺服器上靜默建立或升級架構,以包含儲存成員資格資訊所需的表格。

  7. 現在需要建立上一個步驟中參考的連接字串。將網站的 web.config 檔案載入 Visual Studio 中。

  8. 找到標記為 <connectionStrings> 的區段。新增下列連接字串資訊。

    <connectionStrings>
      <remove name="LocalMySqlServer"/>
      <add name="LocalMySqlServer"
           connectionString="Datasource=localhost;Database=users;uid=root;pwd=password"
           providerName="MySql.Data.MySqlClient"/>
    </connectionStrings>

    指定的資料庫是在第一個步驟中建立的。您也可以選擇使用現有的資料庫。

  9. 此時,建置解決方案以確保沒有錯誤。這可以透過從主功能表中選取 建置建置解決方案,或按下 F6 來完成。

  10. ASP.NET 支援本機和遠端驗證使用者的概念。使用本機驗證時,使用者在嘗試存取網站時,會使用其 Windows 認證進行驗證。這在內部網路環境中可能很有用。使用遠端驗證時,會提示使用者在存取網站時輸入其登入詳細資料,並根據儲存在 MySQL Server 等資料庫伺服器中的成員資格資訊檢查這些認證。您現在將了解如何選擇此形式的驗證。

    啟動 ASP.NET 網站管理工具。這可以透過按一下方案總管中的小型鎚子/地球圖示快速完成。您也可以從主功能表中選取 網站,然後選取 ASP.NET 設定來啟動此工具。

  11. 在 ASP.NET 網站管理工具中,按一下 安全性索引標籤,並執行下列動作

    1. 按一下 使用者驗證類型連結。

    2. 選取 來自網際網路選項。網站現在需要提供表單,讓使用者輸入其登入詳細資料。詳細資料將根據儲存在 MySQL 資料庫中的成員資格資訊進行檢查。

  12. 您現在需要指定要使用的角色和成員資格提供者。按一下 提供者索引標籤,並執行下列動作

    1. 按一下 為每個功能選取不同的提供者 (進階) 連結。

    2. 針對成員資格提供者,選取 MySQLMembershipProvider 選項,針對角色提供者,選取 MySQLRoleProvider 選項。

  13. 在 Visual Studio 中,從主功能表按一下 建置,然後按一下 重建解決方案,以重建解決方案。

  14. 檢查是否已建立必要的架構。這可以使用 mysql 命令直譯器使用 SHOW DATABASES;SHOW TABLES; 來實現。

    mysql> SHOW DATABASES;
    +---------------------+
    | Database            |
    +---------------------+
    | information_schema  |
    | mysql               |
    | test                |
    | users               |
    | world               |
    +---------------------+
    5 rows in set (0.01 sec)
    
    mysql> SHOW TABLES;
    +---------------------------+
    | Tables_in_users           |
    +---------------------------+
    | my_aspnet_applications    |
    | my_aspnet_membership      |
    | my_aspnet_profiles        |
    | my_aspnet_roles           |
    | my_aspnet_schemaversion   |
    | my_aspnet_users           |
    | my_aspnet_usersinroles    |
    +---------------------------+
    7 rows in set (0.00 sec)
  15. 假設一切都已正確設定,您現在可以為您的網頁應用程式建立使用者和角色。最簡單的方法是使用 ASP.NET 網站管理工具。然而,許多網頁應用程式都包含自己的模組來建立角色和使用者。為了簡化起見,本教學課程將使用 ASP.NET 網站管理工具。

  16. 在 ASP.NET 網站管理工具中,點擊 安全性 索引標籤。現在會員資格和角色提供者都已啟用,您將看到用於建立角色和使用者的連結。點擊 建立或管理角色 連結。

  17. 您現在可以輸入新角色的名稱,然後點擊 新增角色 以建立新角色。根據需要建立新角色。

  18. 點擊 返回 按鈕。

  19. 點擊 建立使用者 連結。您現在可以填寫要建立的使用者的資訊,並將該使用者分配給一個或多個角色。

  20. 使用 mysql 命令直譯器,您可以檢查您的資料庫是否已正確填入會員資格和角色資料。

    mysql> SELECT * FROM my_aspnet_users;
    mysql>  SELECT * FROM my_aspnet_roles;

在本教學課程中,您已了解如何設定 Connector/NET 會員資格和角色提供者,以在您的 ASP.NET 網頁應用程式中使用。