บทช่วยสอนการจัดการเซสชัน 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;
}

คำอธิบายรหัส:-

  1. บรรทัดแรกของโค้ดจะรับค่าของคอนโทรล Name textbox และเก็บไว้ในอ็อบเจ็กต์ Session โดยการระบุโค้ดของ Session[“Name”] เราจะตั้งชื่อให้กับคุณสมบัติว่า “Name” การระบุชื่อให้กับคุณสมบัติจะทำให้เรียกค้นได้ง่ายขึ้นในภายหลัง
  2. บรรทัดถัดไปของโค้ดดึงค่าที่เก็บไว้จากวัตถุเซสชัน จากนั้นจะเขียนค่านี้ผ่านวิธี 'Response.Write' กลับไปยังไคลเอ็นต์
  3. ในที่สุด เราทำให้ตัวควบคุมทั้งหมดในแบบฟอร์มเป็นแบบมองไม่เห็น หากเราไม่ทำเช่นนี้ ตัวควบคุมทั้งหมดพร้อมค่าการตอบสนองของเราจะปรากฏพร้อมกัน

เมื่อคุณทำการเปลี่ยนแปลงข้างต้นแล้ว คุณจะเห็นผลลัพธ์ต่อไปนี้

Output:

ใช้วัตถุเซสชัน

จากผลลัพธ์ คุณจะเห็นว่าค่าเซสชันของชื่อถูกดึงและแสดงในเบราว์เซอร์

สรุป

  • การจัดการเซสชันเป็นช่องทางหนึ่งค่ะ ASP.net เพื่อให้แน่ใจว่าข้อมูลจะถูกส่งต่อจากหน้าหนึ่งไปยังอีกหน้าหนึ่ง
  • คุณสมบัติสถานะมุมมองของเพจใช้เพื่อส่งข้อมูลการควบคุมจากเพจหนึ่งไปยังอีกเพจหนึ่งโดยอัตโนมัติ
  • ออบเจ็กต์ 'เซสชัน' ใช้เพื่อจัดเก็บและดึงค่าเฉพาะภายในหน้าเว็บ

สรุปโพสต์นี้ด้วย: