มีบทความออนไลน์หลายร้อยบทความเกี่ยวกับการตรวจสอบความถูกต้องของแบบฟอร์ม แต่ฉันใช้เวลาวันครึ่งในการเรียนรู้ "สักหน่อย"
ตอนนี้ฉันแบ่งปันรหัสนี้ โดยหวังว่ามันจะเป็นประโยชน์สำหรับผู้เริ่มต้นเช่นฉัน และฉันก็หวังว่าผู้เชี่ยวชาญจะให้คำแนะนำแก่ฉันได้:
----------------------- --- ----------------------------------------------- --- ----
ขั้นตอนที่ 1: สร้างฐานข้อมูลใหม่ (ไลบรารี: MyForms; ตาราง: ผู้ใช้; ฟิลด์: ID, ชื่อผู้ใช้, userPwd);
ขั้นตอนที่ 2: สร้างเว็บไซต์ใหม่ รหัสทั้งหมดของไฟล์ web.config เป็นดังนี้:
รหัสทั้งหมดของ web.config
<?xml เวอร์ชัน = "1.0"?>
<การกำหนดค่า>
<การตั้งค่าแอป/>
<สตริงการเชื่อมต่อ/>
<system.เว็บ>
<คอมไพล์ดีบัก = "true"/>
<sessionState cookieless="ตรวจจับอัตโนมัติ"/>
<!--วิธีแก้ปัญหาเมื่อคุกกี้ถูกปิดใช้งานบนเบราว์เซอร์-->
<โหมดการรับรองความถูกต้อง = "แบบฟอร์ม">
<ชื่อฟอร์ม = "CookieName" loginUrl = "login.aspx" การป้องกัน = "ทั้งหมด" ></ แบบฟอร์ม>
<!--loginUrl คือ URL ของหน้าเข้าสู่ระบบ หากไม่มีคุกกี้การตรวจสอบสิทธิ์ ไคลเอ็นต์จะถูกเปลี่ยนเส้นทางไปยัง URL นี้-->
</การรับรองความถูกต้อง>
<การอนุญาต>
<ปฏิเสธผู้ใช้="?"/>
</การอนุญาต>
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<สถานะข้อผิดพลาด = "403" เปลี่ยนเส้นทาง = "NoAccess.htm" / >
<สถานะข้อผิดพลาด = "404" เปลี่ยนเส้นทาง = "FileNotFound.htm" />
</ข้อผิดพลาดแบบกำหนดเอง>
</system.เว็บ>
</configuration>
ขั้นตอนที่ 3: เพิ่มหน้า login.aspx; ลาก 2 กล่องข้อความ, 1 ปุ่ม และ 1 กล่องกาเครื่องหมาย;
และตั้งค่าแอตทริบิวต์ข้อความของช่องทำเครื่องหมายเป็น: "ว่าจะบันทึกคุกกี้หรือไม่";
ขั้นตอนที่ 4: รหัสที่ซ่อนอยู่ของ login.aspx จะเป็นดังนี้:
เข้าสู่ระบบ รหัสที่ซ่อนอยู่ทั้งหมด
ใช้ระบบ;
ใช้ System.Data;
โดยใช้ระบบการกำหนดค่า;
ใช้ System.Web;
โดยใช้ System.Web.Security;
โดยใช้ System.Web.UI;
ใช้ System.Web.UI.WebControls;
ใช้ System.Web.UI.WebControls.WebParts;
ใช้ System.Web.UI.HtmlControls;
ใช้ System.Data.SqlClient; // นำเข้าเนมสเปซ
คลาสบางส่วนสาธารณะ _Default: System.Web.UI.Page
-
โมฆะที่ได้รับการป้องกัน Page_Load (ผู้ส่งวัตถุ EventArgs e)
{
}
โมฆะที่ได้รับการป้องกัน Button1_Click (ผู้ส่งวัตถุ EventArgs e)
-
ชื่อผู้ใช้สตริง = TextBox1.Text.Trim();
สตริง userPwd = TextBox2.Text.Trim();
SqlConnection con = SqlConnection ใหม่ ("เซิร์ฟเวอร์=.;ฐานข้อมูล=MyForms;รหัสผู้ใช้=sa;รหัสผ่าน=123456");
แย้งเปิด();
SqlCommand cmd = new SqlCommand("เลือกจำนวน(*) จากผู้ใช้โดยที่ userName='" + ชื่อผู้ใช้ + "' และ userPwd='" + userPwd + "'", con);
int นับ = Convert.ToInt32(cmd.ExecuteScalar());
ถ้า (นับ > 0)
-
System.Web.Security.FormsAuthentication.SetAuthCookie (this.TextBox1.Text, this.CheckBox1.Checked);
Response.Redirect("Default.aspx");
//สองบรรทัดข้างต้นสามารถถูกแทนที่ด้วยบรรทัดต่อไปนี้ หากผ่านการตรวจสอบ มันจะถูกนำไปยังหน้าที่ร้องขอโดยไม่ต้องใช้ Response.Redirect("");
//System.Web.Security.FormsAuthentication.RedirectFromLoginPage (this.TextBox1.Text, false);
}
อื่น
-
Response.Write("ผู้ใช้ผิดกฎหมาย");
-
-
}
ขั้นตอนที่ 5: ลากปุ่มไปที่ Default.aspx ตั้งค่าแอตทริบิวต์ข้อความเป็น "ออกจากระบบ" และโค้ดเหตุการณ์จะเป็นดังนี้:
รหัสเหตุการณ์ของปุ่ม
โมฆะที่ได้รับการป้องกัน Button1_Click (ผู้ส่งวัตถุ EventArgs e)
-
System.Web.Security.FormsAuthentication.SignOut();
}
http://www.cnblogs.com/yoyebina/archive/2006/12/03/580121.html