การส่งคำสั่งจากฝั่งเซิร์ฟเวอร์ (.NET) ไปยังเบราว์เซอร์

เรามีแอปพลิเคชันเว็บบางตัวที่อนุญาตให้ผู้ใช้เข้าสู่ระบบและทำงานบางอย่างได้ แต่บางครั้งผู้ใช้ทำงานกับเว็บไซต์ของเราโดยเปิดเบราว์เซอร์มากกว่าหนึ่งเบราว์เซอร์ และนี่ทำให้เราเกิดปัญหามากมาย เราจะใช้สิ่งต่อไปนี้ได้อย่างไร - เมื่อผู้ใช้เข้าสู่ระบบเว็บไซต์ของเรา ออกจากระบบโดยอัตโนมัติในเบราว์เซอร์ที่เข้าสู่ระบบก่อนหน้านี้ทั้งหมด

ขอบคุณมาก.


person Ilan    schedule 04.08.2015    source แหล่งที่มา
comment
อาจไม่ใช่สิ่งที่คุณต้องการฟัง แต่คุณควรแก้ไขปัญหาที่เกิดจากการเปิดเบราว์เซอร์มากกว่าหนึ่งเบราว์เซอร์แทนที่จะเพิกเฉย   -  person CodingIntrigue    schedule 04.08.2015


คำตอบ (1)


คุณสามารถใช้ JS localStorage ในการโหลดเพจเพื่อตรวจจับการเข้าสู่ระบบของผู้ใช้ กิจกรรมจะเริ่มทำงานในทุกแท็บหรือหน้าต่างที่เปิดภายในโดเมนเดียวกัน :

function storageChange(event) {
    if(event.key == 'user_login') {

        // logout - except current window
    }
}
window.addEventListener('storage', storageChange, false);

//when user logs in
window.localStorage.setItem('user_login', true);

ซึ่งจะใช้ได้ก็ต่อเมื่อผู้ใช้ใช้เบราว์เซอร์เดียวกันหลายครั้ง

person fmgp    schedule 04.08.2015
comment
จะใช้งานได้ในกรณีที่ผู้ใช้เข้าสู่ระบบจากเบราว์เซอร์ที่แตกต่างกันหรือไม่ - person Ilan; 04.08.2015
comment
ขอบคุณ แต่เราต้องการวิธีแก้ปัญหาสำหรับเบราว์เซอร์ที่แตกต่างกันด้วย - person Ilan; 04.08.2015