วิธีแก้ไขปัญหาเซสชันนี้ใน ASP.NET, VB.NET
มีข้อกำหนดดังต่อไปนี้:
เมื่อผู้ใช้ที่ได้รับอนุญาตเข้าสู่ระบบ ผู้ใช้ไม่ได้รับอนุญาตให้เข้าสู่ระบบจากคอมพิวเตอร์เครื่องอื่นหรือในเบราว์เซอร์อื่นที่ไม่ใช่ผู้ใช้รายนั้นกำลังใช้อยู่ในขณะนี้
วิธีแก้ไขที่เราใช้คือ: เราได้เก็บ "Is_Loggedin" ไว้เป็นคอลัมน์ที่มีประเภทข้อมูล "bit" ใน mst_vendor เป็นชื่อตาราง เมื่อผู้ใช้เข้าสู่ระบบ เราจะตั้งค่าสถานะ Is_Loggedin เป็น "1" และทุกครั้งที่มีคนพยายามเข้าสู่ระบบโดยใช้บัญชีนี้ ระบบจะแสดงข้อผิดพลาด "ผู้ใช้เข้าสู่ระบบแล้ว"
เมื่อผู้ใช้ออกจากระบบ ระบบจะเปลี่ยนเป็น "0" เนื่องจากขั้นตอนการออกจากระบบเรียกใช้ทันทีที่ผู้ใช้คลิกปุ่มออกจากระบบ
สถานการณ์ปัญหา:
เมื่อผู้ใช้ปิดเบราว์เซอร์ การตั้งค่าสถานะจะยังคงเหมือนเดิม นั่นคือ "1"
เมื่อดับเครื่องจะยังคงเหมือนเดิมเป็น "1"
หากหมดเวลาเซสชันหลังจากค่าที่กำหนดไว้ล่วงหน้า เซสชันจะยังคงเหมือนเดิม
อาจมีสถานการณ์ที่แตกต่างกันนอกเหนือจากนี้
มีวิธีใดบ้างที่เราสามารถจัดเก็บการตั้งค่าสถานะภายในนี้สำหรับสถานะการเข้าสู่ระบบของผู้ใช้โดยใช้วัตถุแอปพลิเคชัน
อาจปรับปรุงประสิทธิภาพของระบบและยังช่วยขจัดสถานการณ์ปัญหาข้างต้นอีกด้วย
C#
และC++
- person Hans Kesting   schedule 30.11.2010