首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# + SQL Server 2008 實現登錄註冊系統:分層架構與連接字符串配置指南

     編輯:程式設計綜合問答

架構分層

Solution
├── Models          // 實體類 User.cs
├── DAL             // Data Access Layer (SQLHelper, UserDAL)
├── BLL             // Business Logic Layer (UserService)
├── UI              // WinForm / WPF / ASP.NET (LoginForm, RegisterForm)
└── Common          // 工具類 (MD5加密, 驗證碼)

核心步驟

  1. SSMS 建庫建表:
    `CREATE DATABASE UserDB; USE UserDB; CREATE TABLE Users(Id INT PRIMARY KEY IDENTITY, Username NVARCHAR(50) UNIQUE, PasswordHash NVARCHAR(100), Salt NVARCHAR(20), Email NVARCHAR(100), CreatedAt DATETIME DEFAULT GETDATE());`
  2. 連接字符串 (`App.config` / `appsettings.json`):
    ``
  3. DAL 通用執行方法:
    `SqlHelper.ExecuteNonQuery(sql, params)`, `ExecuteScalar`, `ExecuteReader` → 返回 `DataTable`/`List`。
  4. 註冊邏輯:
    驗證用戶名唯一 → 生成隨機 Salt → `pwdHash = MD5(password + Salt)` → 入庫。
  5. 登錄邏輯:
    查用戶 → 讀 Salt → 計算 `MD5(inputPwd + Salt)` → 比對 `PasswordHash` → 成功返回 User 對象。
  6. UI 跳轉:
    WinForm: `new RegisterForm().ShowDialog();` / `this.Hide(); new MainForm(user).Show();`。

安全最小集

  • 密碼**永不存明文**,必須鹽值 + 慢哈希 (BCrypt/PBKDF2/Argon2),MD5 僅教學演示。
  • 參數化 SQL 防注入:`cmd.Parameters.AddWithValue("@u", username)`。
  • 登錄失敗計數 + 鎖定、驗證碼、HTTPS (Web 端)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved