首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 自訂 Membership Provider 實作 Access 資料庫完整教學

     編輯:關於ASP.NET

Provider 模式架構圖解

登入控件(Login、CreateUserWizard 等) → Membership API(Membership、MembershipUser) → MembershipProvider 抽象層 → 具體 Provider(SqlMembershipProvider、自訂 Provider)→ 資料來源(SQL Server、Access、Oracle 等)。Provider 隔離上層邏輯與資料存取細節。

實作步驟:Access 版 MembershipProvider

  1. 建立 Access 資料庫 Users.mdb,資料表 Users 欄位:UserID (PK)、UserName、Password、Email、IsApproved、LastLoginDate 等。
  2. 新增類別繼承 MembershipProvider,覆寫核心方法:
    • ValidateUser:驗證帳號密碼(建議雜湊比對)。
    • CreateUser:插入新使用者,回傳 MembershipUser。
    • GetUser、UpdateUser、DeleteUser、ChangePassword 等。
  3. web.config 註冊並設為預設 Provider:
    <membership defaultProvider="AccessMembershipProvider">
      <providers>
        <clear />
        <add name="AccessMembershipProvider"
             type="MyProviders.AccessMembershipProvider"
             connectionStringName="AccessConnStr"
             applicationName="MyApp"
             enablePasswordReset="true"
             requiresUniqueEmail="true" />
      </providers>
    </membership>
    
  4. 頁面拖放 CreateUserWizard、Login、LoginView、LoginName、LoginStatus 控件,無需修改程式碼即可運作。

關鍵實作細節

  • ApplicationName 屬性必須正確實作,支援多應用程式共用資料庫。
  • 密碼儲存建議使用 FormsAuthentication.HashPasswordForStoringInConfigFile (SHA1) 或更強雜湊(PBKDF2、BCrypt)。
  • 資料存取建議使用參數化查詢防止 SQL Injection,Access 使用 OleDbParameter。

擴充至其他資料庫

同樣架構適用於 Oracle、MySQL、PostgreSQL,只需更換 ADO.NET Provider(OracleClient、MySql.Data、Npgsql)與連接字串,SQL 語法微調即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved