Baik Session.Clear () dan Session.Abandon () menghapus variabel sesi. Seperti yang saya pahami, Abandon () mengakhiri sesi saat ini, dan menyebabkan sesi baru dibuat sehingga menyebabkan peristiwa Akhiri dan Mulai diaktifkan.
Tampaknya lebih baik memanggil Abandon () dalam banyak kasus, seperti mengeluarkan pengguna. Apakah ada skenario di mana saya akan menggunakan Clear () sebagai gantinya? Apakah ada banyak perbedaan kinerja?
sumber
Session.Abandon()
sebagai 'logout' pada aplikasi internal menggunakan Autentikasi Windows - pengguna tidak perlu mengautentikasi ulang (Chrome, FF), tetapi sesi tersebut dibuang dan sesi baru dikeluarkan, yang memenuhi persyaratan sayaHanya menggunakan Session.Clear () saat pengguna logout dapat menimbulkan celah keamanan. Karena sesi tersebut masih berlaku sejauh menyangkut Server Web. Hal ini kemudian menjadi masalah yang cukup sepele untuk mengendus, dan mengambil ID sesi, dan membajak sesi itu.
Untuk alasan ini, saat mengeluarkan pengguna, akan lebih aman dan lebih masuk akal untuk menggunakan Session.Abandon () sehingga sesi dimusnahkan, dan sesi baru dibuat (meskipun halaman UI logout akan menjadi bagian dari sesi baru, sesi baru tidak akan memiliki detail pengguna di dalamnya dan membajak sesi baru sama dengan memiliki sesi baru, oleh karena itu sesi tersebut akan dibisukan).
sumber
Session.Abandon
menghancurkan sesi seperti yang disebutkan di atas sehingga Anda harus menggunakan ini saat mengeluarkan seseorang. Menurut saya kegunaan yang baikSession.Clear
adalah untuk keranjang belanja di situs web e-niaga. Dengan cara itu keranjang dibersihkan tanpa mengeluarkan pengguna.sumber
Session.Abandon
membersihkan keranjang belanja tertentu?Saya mengalami masalah ini dan mencoba keduanya, tetapi harus puas menghapus omong kosong seperti "pageEditState", tetapi tidak menghapus info pengguna agar saya tidak perlu mencarinya lagi.
sumber