ค่าที่คุณตั้งค่าไว้ในtimeout
แอตทริบิวต์เป็นหนึ่งในวิธีที่ถูกต้องในการตั้งค่าการหมดเวลาของเซสชัน
แอtimeout
ททริบิวระบุจำนวนนาทีที่เซสชันสามารถใช้งานได้ก่อนที่จะถูกทิ้ง ค่าเริ่มต้นสำหรับคุณลักษณะนี้คือ 20
ด้วยการกำหนดค่า 1 ให้กับแอททริบิวนี้คุณได้กำหนดให้เซสชันถูกยกเลิกใน 1 นาทีหลังจากที่ไม่ได้ใช้งาน
ในการทดสอบให้สร้างหน้า aspx อย่างง่ายและเขียนรหัสนี้ในเหตุการณ์ Page_Load
Response.Write(Session.SessionID);
เปิดเบราว์เซอร์และไปที่หน้านี้ รหัสเซสชันจะถูกพิมพ์ รอสักครู่ผ่านไปแล้วกดรีเฟรช รหัสเซสชันจะเปลี่ยนไป
ตอนนี้ถ้าฉันเดาถูกต้องคุณต้องการให้ผู้ใช้ของคุณออกจากระบบทันทีที่เซสชั่นหมดเวลา สำหรับการทำเช่นนี้คุณสามารถรัดหน้าเข้าสู่ระบบซึ่งจะตรวจสอบข้อมูลประจำตัวของผู้ใช้และสร้างตัวแปรเซสชั่นเช่นนี้ -
Session["UserId"] = 1;
ตอนนี้คุณจะต้องทำการตรวจสอบในทุกหน้าสำหรับตัวแปรนี้เช่นนี้ -
if(Session["UserId"] == null)
Response.Redirect("login.aspx");
นี่เป็นตัวอย่างที่แสดงให้เห็นว่ามันทำงานอย่างไร
แต่สำหรับการสร้างแอปที่ปลอดภัยในคุณภาพการผลิตของคุณให้ใช้คลาสRoles & Membership ที่จัดทำโดย ASP.NET พวกเขาให้การรับรองความถูกต้องโดยใช้แบบฟอร์มซึ่งมีความน่าเชื่อถือมากขึ้นกว่าการตรวจสอบตามเซสชันปกติที่คุณพยายามใช้