บทช่วยสอนการจัดการเซสชัน ASP.NET [ตัวอย่าง]
การจัดการเซสชัน ASP.NET
โปรโตคอล HTTP ที่เว็บแอปพลิเคชันทั้งหมดทำงานนั้นเป็นโปรโตคอลไร้สัญชาติ การไร้สัญชาติหมายความว่าข้อมูลจะไม่ถูกเก็บรักษาไว้จากคำขอหนึ่งไปยังอีกคำขอหนึ่ง
ตัวอย่างเช่น หากคุณมีหน้าเข้าสู่ระบบที่มีช่องข้อความ 2 ช่อง ช่องหนึ่งสำหรับชื่อและอีกช่องสำหรับรหัสผ่าน เมื่อคุณคลิกปุ่มเข้าสู่ระบบบนหน้าดังกล่าว แอปพลิเคชันจะต้องตรวจสอบให้แน่ใจว่าชื่อผู้ใช้และรหัสผ่านถูกส่งต่อไปยังหน้าถัดไป
ใน ASP.Net สามารถทำได้หลายวิธี วิธีแรกคือผ่านแนวคิดที่เรียกว่า ViewState นี่คือที่ที่ ASP.Net จะจัดเก็บเนื้อหาของการควบคุมทั้งหมดโดยอัตโนมัติ นอกจากนี้ยังช่วยให้แน่ใจว่าสิ่งนี้จะถูกส่งผ่านไปยังหน้าถัดไป สิ่งนี้ทำได้ผ่านคุณสมบัติที่เรียกว่า ViewState
ไม่เหมาะสำหรับนักพัฒนาที่จะเปลี่ยนแปลงสิ่งใดในสถานะมุมมอง เนื่องจากควรได้รับการจัดการโดย ASP.Net เท่านั้น
วัตถุเซสชัน ASP.NET
อีกวิธีหนึ่งคือการใช้วัตถุที่เรียกว่า "วัตถุเซสชัน" อ็อบเจ็กต์เซสชันพร้อมใช้งานตลอดวงจรการใช้งานของแอปพลิเคชัน คุณสามารถจัดเก็บคู่คีย์-ค่าจำนวนเท่าใดก็ได้ในออบเจ็กต์เซสชัน ดังนั้นในทุกหน้า คุณสามารถเก็บค่าไว้ในอ็อบเจ็กต์ Session ผ่านทางโค้ดบรรทัดด้านล่าง
Session["Key"]=value
การดำเนินการนี้จะจัดเก็บค่าในอ็อบเจ็กต์ Session และส่วน 'key' จะถูกใช้เพื่อตั้งชื่อให้กับค่า การดำเนินการนี้จะช่วยให้สามารถเรียกค้นค่าได้ในภายหลัง หากต้องการเรียกค้นค่า คุณเพียงแค่ใช้คำสั่งด้านล่างนี้
Session["Key"]
ตัวอย่างอ็อบเจ็กต์เซสชัน ASP.NET
ในตัวอย่างของเรา เราจะใช้ Session object เพื่อเก็บชื่อที่ป้อนลงในช่องข้อความ name ในเพจ จากนั้นเราจะดึงค่าดังกล่าวและแสดงบนเพจตามลำดับ มาเพิ่มโค้ดด้านล่างนี้ลงในไฟล์ Demo.aspx.cs กัน
protected void btnSubmit_Click(object sender,EventArgs e)
{
Session["Name"] = txtName.Text;
Response.Write(Session["Name"]);
lblName.Visible = false;
txtName.Visible = false;
1stLocation.Visible = false;
chkC.Visible = false;
chkASP.Visible = false;
rdMale.Visible = false;
rdFemale.Visible = false;
btnSubmit.Visible = false;
}
คำอธิบายรหัส:-
- บรรทัดแรกของโค้ดจะรับค่าของคอนโทรล Name textbox และเก็บไว้ในอ็อบเจ็กต์ Session โดยการระบุโค้ดของ Session[“Name”] เราจะตั้งชื่อให้กับคุณสมบัติว่า “Name” การระบุชื่อให้กับคุณสมบัติจะทำให้เรียกค้นได้ง่ายขึ้นในภายหลัง
- บรรทัดถัดไปของโค้ดดึงค่าที่เก็บไว้จากวัตถุเซสชัน จากนั้นจะเขียนค่านี้ผ่านวิธี 'Response.Write' กลับไปยังไคลเอ็นต์
- ในที่สุด เราทำให้ตัวควบคุมทั้งหมดในแบบฟอร์มเป็นแบบมองไม่เห็น หากเราไม่ทำเช่นนี้ ตัวควบคุมทั้งหมดพร้อมค่าการตอบสนองของเราจะปรากฏพร้อมกัน
เมื่อคุณทำการเปลี่ยนแปลงข้างต้นแล้ว คุณจะเห็นผลลัพธ์ต่อไปนี้
Output:
จากผลลัพธ์ คุณจะเห็นว่าค่าเซสชันของชื่อถูกดึงและแสดงในเบราว์เซอร์
สรุป
- การจัดการเซสชันเป็นช่องทางหนึ่งค่ะ ASP.net เพื่อให้แน่ใจว่าข้อมูลจะถูกส่งต่อจากหน้าหนึ่งไปยังอีกหน้าหนึ่ง
- คุณสมบัติสถานะมุมมองของเพจใช้เพื่อส่งข้อมูลการควบคุมจากเพจหนึ่งไปยังอีกเพจหนึ่งโดยอัตโนมัติ
- ออบเจ็กต์ 'เซสชัน' ใช้เพื่อจัดเก็บและดึงค่าเฉพาะภายในหน้าเว็บ


