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

ASP.NET Forms 認證實戰(一):專案建立、Web.config 設定與使用者資料庫設計

     編輯:關於C語言

專案需求與工具準備

  • 目標:實作資料庫驅動的表單認證
  • 工具:Visual Studio .NET、IIS 5.0+、SQL Server
  • 命名空間:System.Data.SqlClient、System.Web.Security

步驟 1:建立 ASP.NET Web 應用程式專案

  1. 開啟 Visual Studio .NET
  2. 新增專案 → ASP.NET Web Application
  3. 指定名稱與路徑(如 FormsAuthDemo)

步驟 2:配置 Web.config 認證與授權區段

<configuration>
  <system.web>
    <!-- 設定表單認證模式 -->
    <authentication mode="Forms">
      <forms name=".ASPXFORMSDEMO" 
             loginUrl="Logon.aspx" 
             protection="All" 
             path="/" 
             timeout="30" />
    </authentication>
    
    <!-- 拒絕匿名使用者,允許已驗證使用者 -->
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>

關鍵屬性說明:

  • name:Cookie 名稱,避免多應用程式衝突
  • loginUrl:未驗證導向的登入頁
  • protection="All":驗證 + 加密(預設)
  • timeout:票據有效分鐘數(滑動過期)
  • path:Cookie 路徑範圍

步驟 3:建立使用者資料表

IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[dbo].[Users]') 
           AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    DROP TABLE [dbo].[Users]
GO

CREATE TABLE [dbo].[Users] (
    [uname] [varchar](15) NOT NULL,
    [Pwd] [varchar](25) NOT NULL,
    [userRole] [varchar](25) NOT NULL,
    CONSTRAINT [PK_Users] PRIMARY KEY NONCLUSTERED ([uname])
) ON [PRIMARY]
GO

INSERT INTO Users VALUES ('user1', 'user1', 'Manager')
INSERT INTO Users VALUES ('user2', 'user2', 'Admin')
INSERT INTO Users VALUES ('user3', 'user3', 'User')
GO

設計重點:

  • uname 為主鍵,長度 15
  • Pwd 明文儲存(示範用,生產環境**必須雜湊**)
  • userRole 支援角色型授權
  • 範例資料 3 筆,涵蓋不同角色

步驟 4:在 SQL Server 執行腳本

  1. 開啟 SQL Server 查詢分析器
  2. 選擇 Pubs 資料庫(或自建)
  3. 貼上腳本並執行
  4. 確認 Users 表建立且資料寫入

安全性提醒(生產環境必做)

  1. 密碼雜湊:使用 FormsAuthentication.HashPasswordForStoringInConfigFile 或 BCrypt/Argon2
  2. 連接字串外部化:放在 <connectionStrings> 區段,勿硬編碼
  3. 防暴力破解:登入失敗計數、帳號鎖定、CAPTCHA
  4. HTTPS 強制:保護認證 Cookie 傳輸
  5. timeout 設定平衡安全與使用者體驗

完成上述步驟,專案已具備表單認證基礎設施。下一篇將實作登入頁面、驗證邏輯與票據管理。

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