文件首頁
MySQL Connector/NET 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.3MB
PDF (A4) - 1.3MB


MySQL Connector/NET 開發人員指南  /  ...  /  教學:簡單成員資格 Web 提供者

6.2.4 教學:簡單成員資格 Web 提供者

本節說明在 MVC 4 範本上使用簡單成員資格提供者的能力。 設定 OAuth 相容性,以便應用程式使用來自 Google、Facebook、Twitter 或其他協力廠商提供者的外部認證登入。

本教學課程會建立一個使用簡單成員資格提供者的應用程式,然後新增協力廠商 (Google) OAuth 驗證支援。

注意

此功能已新增於 MySQL Connector/NET 6.9.0 中。

需求

  • Connector/NET 6.9.x 或更新版本

  • .NET Framework 4.0 或更新版本

  • Visual Studio 2012 或更新版本

  • MVC 4

建立和設定新專案

若要開始使用新專案,請執行下列動作

  1. 開啟 Visual Studio,建立 ASP.NET MVC 4 Web 應用程式類型的新專案,並設定專案以使用 .NET Framework 4.5。 下圖顯示「新專案」視窗的範例,並選取了項目。

    圖 6.6 簡單成員資格:新專案

    Content is described in the surrounding text.

  2. 選擇您喜歡的範本和檢視引擎。 本教學課程使用具有 Razor 檢視引擎的 網際網路應用程式範本 (請參閱下圖)。 您也可以選擇性地選取 建立單元測試專案,新增單元測試專案。

    圖 6.7 簡單成員資格:選擇範本和引擎

    Content is described in the surrounding text.

  3. 新增對 MySql.DataMySql.Data.EntitiesMySql.Web 組件的參考。 選取的組件必須符合範本新增至專案的 .NET Framework 和 Entity Framework 版本。

  4. 將有效的 MySQL 連線字串新增至 web.config 檔案,類似於下列範例。

    <add
      name="MyConnection"
      connectionString="server=localhost;
                        UserId=root;
                        password=pass;
                        database=MySqlSimpleMembership;
                        logging=true;port=3305"
      providerName="MySql.Data.MySqlClient"/>
  5. <system.data> 節點下,新增類似於下列範例的設定資訊。

    <membership defaultProvider="MySqlSimpleMembershipProvider">
    <providers>
    <clear/>
    <add
      name="MySqlSimpleMembershipProvider"
      type="MySql.Web.Security.MySqlSimpleMembershipProvider,MySql.Web,
            Version=6.9.2.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"
      applicationName="MySqlSimpleMembershipTest"
      description="MySQLdefaultapplication"
      connectionStringName="MyConnection"
      userTableName="MyUserTable"
      userIdColumn="MyUserIdColumn"
      userNameColumn="MyUserNameColumn"
      autoGenerateTables="True"/>
    </providers>
    </membership>
  6. 使用下列屬性的有效值更新設定:connectionStringNameuserTableNameuserIdColumnuserNameColumnautoGenerateTables

    • userTableName:用於儲存使用者資訊的資料表名稱。 此資料表與提供者產生的結構描述無關,且日後可以變更。

    • userId:儲存 userTableName 中記錄 ID 的資料行名稱。

    • userName:儲存 userTableName 中記錄的名稱/使用者的資料行名稱。

    • connectionStringName:此屬性必須符合在 web.config 檔案中定義的連線字串。

    • autoGenerateTables:如果處理認證的資料表已存在,則必須將其設定為 false

  7. 使用已設定的連線字串名稱更新您的 DBContext 類別。

  8. Filters/ 資料夾開啟 InitializeSimpleMembershipAttribute.cs 檔案,並找到 SimpleMembershipInitializer 類別。 然後找到 WebSecurity.InitializeDatabaseConnection 方法呼叫,並使用 connectionStringNameuserTableNameuserIdColumnuserNameColumn 的設定更新參數。

  9. 如果連線字串中設定的資料庫不存在,請建立該資料庫。

  10. 在執行 Web 應用程式後,成功時會顯示產生的首頁 (請參閱下圖)。

    圖 6.8 簡單成員資格:產生的首頁

    Content is described in the surrounding text.

  11. 如果應用程式成功執行,則產生的結構描述會類似於下圖,其中顯示了一個開啟至資料表的物件瀏覽器。

    圖 6.9 簡單成員資格:產生的結構描述和資料表

    Content is described in the surrounding text.

  12. 若要建立使用者登入,請按一下產生的網頁上的 註冊。 輸入使用者名稱和密碼,然後執行註冊表單。 此動作會將您重新導向至首頁,並登入新建立的使用者。

    新建立的使用者資料可以位於 UserProfileWebpages_Membership 資料表中。

將 OAuth 驗證新增至專案

OAuth 是使用簡單成員資格提供者的網站的另一個驗證選項。 可以使用 Facebook、Twitter、Google 和其他外部帳戶驗證使用者。

請使用下列步驟,在應用程式中使用 Google 帳戶啟用驗證

  1. App_Start 資料夾中找到 AuthConfig.cs 檔案。

  2. 由於本教學課程使用 Google,請找到 RegisterAuth 方法,並取消註解呼叫 OauthWebSecurity.RegisterGoogleClient 的最後一行。

  3. 執行應用程式。 應用程式執行時,按一下 登入 以開啟登入頁面。 然後,按一下 使用其他服務登入 下的 Google (如下圖所示)。

    圖 6.10 具有 OAuth 的簡單成員資格:Google 服務

    Content is described in the surrounding text.

  4. 此動作會重新導向至 Google 登入頁面 (google.com),並要求您使用 Google 帳戶資訊登入。

  5. 提交正確的認證後,會出現訊息要求允許您的應用程式存取使用者的資訊。 請閱讀說明,然後按一下 接受 以允許引用的動作,並重新導向回應用程式的登入頁面。

  6. 應用程式現在可以註冊帳戶。 使用者名稱欄位將會填入適當的資訊 (在此範例中,為與 Google 帳戶相關聯的電子郵件地址)。 按一下 註冊,以使用您的應用程式註冊使用者。

    現在,新使用者已使用 OAuth 從外部來源登入應用程式。 有關新使用者的資訊會儲存在 UserProfileWebpages_OauthMembership 資料表中。

若要使用另一個外部選項來驗證使用者,您必須在我們在本教學課程中啟用 Google 提供者的同一個類別中啟用用戶端。 一般而言,提供者會要求您先註冊應用程式,才能允許 OAuth 驗證,一旦註冊,他們通常會提供一個權杖/金鑰和一個 ID,必須在應用程式中註冊提供者時使用。