Saya telah berusaha sangat keras tetapi tidak dapat menemukan solusi tentang cara menetapkan nilai batas waktu sesi untuk sesi dalam proses untuk aplikasi web ASP.Net.
Saya menggunakan VSTS 2008 +. Net 3.5 + C #. Inilah yang saya tulis sendiri untuk menetapkan batas waktu menjadi 1 menit, benarkah?
Saya menulis di bawah bagian system.web di web.config
<sessionState timeout="1" mode="InProc" />
Jawaban:
Jika Anda ingin mengatur batas waktu menjadi 20 menit, gunakan sesuatu seperti ini:
sumber
Nilai yang Anda atur di
timeout
atribut adalah salah satu cara yang benar untuk mengatur nilai batas waktu sesi.The
timeout
menspesifikasikan atribut jumlah menit sesi bisa menganggur sebelum ditinggalkan. Nilai default untuk atribut ini adalah 20.Dengan menetapkan nilai 1 ke atribut ini, Anda telah menetapkan sesi untuk ditinggalkan dalam 1 menit setelah menganggur.
Untuk mengujinya, buat halaman aspx sederhana, dan tulis kode ini di event Page_Load,
Buka browser dan buka halaman ini. Id sesi akan dicetak. Tunggu satu menit berlalu, lalu tekan segarkan. Id sesi akan berubah.
Sekarang, jika tebakan saya benar, Anda ingin membuat pengguna Anda keluar segera setelah sesi habis. Untuk melakukan ini, Anda dapat memasang halaman login yang akan memverifikasi kredensial pengguna, dan membuat variabel sesi seperti ini -
Sekarang, Anda harus melakukan pemeriksaan pada setiap halaman untuk variabel seperti ini -
Ini adalah contoh sederhana tentang bagaimana ini akan bekerja.
Tetapi, untuk membuat aplikasi aman berkualitas produksi Anda, gunakan kelas Peran & Keanggotaan yang disediakan oleh ASP.NET. Mereka menyediakan otentikasi berbasis Formulir yang jauh lebih dapat diandalkan otentikasi berbasis Sesi normal yang Anda coba gunakan.
sumber
Jika Anda menggunakan MVC, Anda meletakkan ini di file web.config di direktori Root aplikasi web, bukan web.config di direktori Views. Itu juga harus DI simpul system.web, bukan di bawah seperti yang dinyatakan George2 dalam pertanyaannya: "Saya menulis di bawah bagian system.web di web.config"
Nilai parameter batas waktu mewakili menit.
Ada atribut lain yang dapat diatur di elemen sessionState. Anda dapat menemukan informasi di sini: docs.microsoft.com sessionState
Anda kemudian dapat menangkap awal sesi baru di file Global.asax dengan menambahkan metode berikut:
sumber
Gunakan ini di
web.config
:sumber
timeout
.stateConnectionString
dansqlConnectionString
diabaikan ketikamode="InProc"
, dan nilai untukmode
dancookieless
diatur ke nilai standarnya. Jadi, ini benar-benar menyaring ke jawaban Wolfwyrd.Jika tidak berfungsi
web.config
, Anda perlu mengaturnya dari IIS.sumber