本節實作完整的使用者註冊頁面,整合 ASP.NET 內建驗證控制項與第三方驗證碼元件,展示伺服器端驗證的標準流程。
Default.aspx,6×2 表格佈局| 欄位 | 驗證控制項 | 關鍵屬性設定 |
|---|---|---|
| 密碼 | RequiredFieldValidator | ControlToValidate=TextBox2, Text="請輸入密碼", ErrorMessage="密碼不可為空" |
| 確認密碼 | CompareValidator | ControlToValidate=TextBox3, ControlToCompare=TextBox2, Operator=Equal, ErrorMessage="兩次密碼不一致" |
| RegularExpressionValidator | ValidationExpression="\d+", ErrorMessage="格式錯誤" | |
| RegularExpressionValidator | ValidationExpression="InternetEmail", ErrorMessage="郵件格式錯誤", ShowMessageBox=True |
WebValidates.dll → 專案 Bin 目錄 → 加入參考 → 工具箱加入 SnCodeSnCode 控制項public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) SnCode.Create(); // 首次載入產生驗證碼
}
private bool CheckCode() {
if (SnCode.CheckSN(TextBox6.Text.Trim())) return true;
SnCode.Create(); // 驗證失敗重新產生
return false;
}
protected void Button1_Click(object sender, EventArgs e) {
if (Page.IsValid) { // 所有驗證控制項通過
if (!CheckCode()) {
Response.Write("");
} else {
// 儲存註冊資料到資料庫...
Response.Write("");
}
}
}
protected void LinkButton1_Click(object sender, EventArgs e) {
SnCode.Create(); // 「看不清」點擊換圖
}
}

| 控制項 | 用途 | 關鍵屬性 |
|---|---|---|
| RequiredFieldValidator | 必填驗證 | ControlToValidate, InitialValue |
| CompareValidator | 比較驗證(相等、大小、型別) | ControlToValidate, ControlToCompare/ValueToCompare, Operator, Type |
| RangeValidator | 範圍驗證 | ControlToValidate, MinimumValue, MaximumValue, Type |
| RegularExpressionValidator | 正則表達式驗證 | ControlToValidate, ValidationExpression |
| CustomValidator | 自訂驗證邏輯 | ControlToValidate, ClientValidationFunction, OnServerValidate |
| ValidationSummary | 彙總顯示所有錯誤 | ShowMessageBox, ShowSummary, HeaderText, DisplayMode |
使用者點擊提交
↓
Page.IsPostBack = true
↓
所有 Validator 執行驗證邏輯
↓
[全部通過] → Page.IsValid = true → 執行 Button_Click 邏輯
[任一失敗] → Page.IsValid = false → 顯示錯誤訊息,不執行 Button_Click
↓
Button_Click 中再次檢查 Page.IsValid(雙重保險)
↓
自訂驗證碼檢查 (SnCode.CheckSN)
↓
[通過] → 寫入資料庫 → 成功導向
[失敗] → 重新產生驗證碼 → 顯示錯誤
ASP.NET 驗證控制項提供宣告式驗證機制,大幅減少手寫驗證程式碼。搭配 Page.IsValid 統一檢查,配合第三方驗證碼防機器註冊,構成基礎但實用的註冊防護體系。進階場景建議加入:AJAX 即時檢查帳號唯一性、密碼強度指示器、hCaptcha/reCAPTCHA 替代傳統圖形驗證碼。