ในแอปพลิเคชัน asp วัตถุเซสชันมักจะใช้เพื่อบันทึกข้อมูลส่วนตัวชั่วคราวของผู้ใช้ วัตถุเซสชันของ asp อาศัยคุกกี้ของเบราว์เซอร์ หากผู้ใช้ปิดตัวเลือกคุกกี้ด้วยเหตุผลด้านความปลอดภัยหรือโดยไม่ได้ตั้งใจ asp จะไม่สามารถดำเนินการได้อย่างถูกต้อง ระบุผู้ใช้ ในที่สุดก็ทำให้อ็อบเจ็กต์เซสชันไม่สามารถใช้งานได้ตามปกติ
ในการรันโปรแกรมต่อๆ ไปอย่างถูกต้อง อันดับแรกเราต้องระบุก่อนว่าโปรแกรมไคลเอนต์ยอมรับคุกกี้หรือไม่ อย่างไรก็ตาม เบราว์เซอร์ไม่มีวิธีการระบุว่าคุกกี้ถูกปิดหรือไม่ ดังนั้น เราจึงต้องหาวิธีทดสอบด้วยตนเอง
นักพัฒนาจำนวนมากได้ใช้วิธีการของตนเองในการทดสอบสถานะคุกกี้ของเบราว์เซอร์ วิธีการที่พบบ่อยที่สุดคือการส่งคุกกี้ในหน้าหนึ่ง จากนั้นทดสอบว่ามีคุกกี้อยู่ในหน้าอื่นหรือไม่ ด้วยวิธีนี้ เราจำเป็นต้องมีคำขอ asp สองคำขอ
สิ่งที่ฉันแนะนำที่นี่คือวิธีการที่รวมสคริปต์เซิร์ฟเวอร์และสคริปต์ไคลเอนต์เพื่อทดสอบสถานะเบราว์เซอร์พร้อมกัน
เมื่อ NetBox เริ่มต้นโปรแกรม asp เป็นครั้งแรก มันจะจัดสรรอ็อบเจ็กต์เซสชันใหม่และส่งคุกกี้ชื่อ Application.ApplicationID ไปยังไคลเอนต์ หากเบราว์เซอร์ยอมรับคุกกี้ ก็จะส่งคุกกี้นี้กลับมาในการเข้าชมครั้งถัดไป เซิร์ฟเวอร์ได้รับคุกกี้นี้ โดยจะเลือกวัตถุเซสชันที่ระบุเป็นวัตถุเซสชันสำหรับคำขอ ASP นี้ เพื่อให้มั่นใจถึงความเป็นเอกลักษณ์และการคงอยู่ของวัตถุเซสชันสำหรับผู้ใช้เฉพาะ
จากนี้เรารู้ว่าเราสามารถระบุได้ว่าโปรแกรมต่อไปนี้สามารถดำเนินการต่อได้หรือไม่โดยพิจารณาว่าเบราว์เซอร์ยอมรับคุกกี้ชื่อ Application.ApplicationID หรือไม่ เพื่อตรวจสอบว่าเบราว์เซอร์มีคุกกี้หรือไม่ คุณสามารถใช้ออบเจ็กต์คุกกี้ของเบราว์เซอร์เพื่อดำเนินการให้เสร็จสมบูรณ์ได้ รหัสต่อไปนี้คือการทดสอบว่าเบราว์เซอร์ยอมรับเซสชัน NetBox หรือไม่:
<html>
<ร่างกาย>
<ภาษาสคริปต์="javascript">
if(document.cookie.search("<%=Application.ApplicationID%>=") == -1)document.write("ไม่ใช่ ");
</สคริปต์>อนุญาต
</ร่างกาย>
</html>
หลักฐานของรหัสนี้คือการทราบชื่อของคุกกี้ที่ส่งโดย NetBox หากคุณต้องการใช้โค้ดนี้ใน iis จะยากกว่าเนื่องจากชื่อของคุกกี้ที่ส่งโดย iis จะแตกต่างกันทุกครั้งที่เริ่มต้น ดังนั้น สำหรับการทดสอบ คุณสามารถส่งคุกกี้ด้วยตนเองแล้วทดสอบอีกครั้ง:
<%Response .Cookie( "CookieCheck")="on"%>
<html>
<ร่างกาย>
<ภาษาสคริปต์="javascript">
if(document.cookie.search("CookieCheck=") == -1)document.write("ไม่ใช่ ");
</สคริปต์>อนุญาต
</ร่างกาย>
</html>