Saya memiliki kode yang saya cari mengenai waktu sesi keluar dari situs web. Di web.config saya menemukan kode ini.
<authentication mode="Forms">
<forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>
<sessionState timeout="30" />
Adakah yang tahu jika ada yang mengambil preseden daripada yang lain, dan bagaimana mereka berbeda. Terima kasih.
asp.net
session
web-config
Lucky Luke2
sumber
sumber
Jawaban:
Mereka adalah hal yang berbeda. Nilai Timeout Authentication Forms menetapkan jumlah waktu dalam menit ketika cookie otentikasi ditetapkan menjadi valid, yang berarti bahwa setelah
value
beberapa menit, cookie akan kedaluwarsa dan pengguna tidak akan lagi diautentikasi — mereka akan diarahkan ke login halaman secara otomatis. TheslidingExpiration=true
nilai pada dasarnya mengatakan bahwa selama pengguna membuat permintaan dalam nilai timeout, mereka akan terus dikonfirmasi (lebih detail di sini ). Jika Anda mengaturslidingExpiration=false
cookie otentikasi akan kedaluwarsa setelahvalue
beberapa menit, terlepas dari apakah pengguna membuat permintaan dalam nilai batas waktu atau tidak.Nilai
SessionState
batas waktu menentukan jumlah waktu yang diperlukan oleh penyedia Session State untuk menyimpan data dalam memori (atau penyimpanan dukungan apa pun yang digunakan, SQL Server, OutOfProc, dll.) Untuk sesi tertentu. Misalnya, jika Anda meletakkan objek di Sesi menggunakan nilai dalam contoh Anda, data ini akan dihapus setelah 30 menit. Pengguna mungkin masih diautentikasi tetapi data dalam Sesi mungkin tidak lagi ada. TheSession Timeout
nilainya selalu reset setelah setiap permintaan.sumber
Ini tidak benar. Batas waktu cookie otentikasi hanya akan diatur ulang jika setengah dari batas waktu telah berlalu.
Lihat misalnya https://support.microsoft.com/de-ch/kb/910439/en-us atau https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -waktu habis/
sumber
Dari apa yang saya pahami mereka independen satu sama lain. Dengan menjaga batas waktu sesi kurang dari atau sama dengan batas waktu otentikasi, Anda dapat memastikan variabel sesi khusus pengguna tidak bertahan setelah otentikasi habis waktu (jika itu adalah masalah Anda, yang menurut saya adalah yang normal ketika menanyakan hal ini). pertanyaan). Tentu saja, Anda harus secara manual menangani pembuangan variabel sesi saat keluar.
Berikut adalah respons yang layak yang dapat menjawab pertanyaan Anda atau setidaknya mengarahkan Anda ke arah yang benar:
sumber
Perbedaannya adalah bahwa satu (Forms timeout) berkaitan dengan otentikasi pengguna dan yang lainnya (Session timeout) berkaitan dengan berapa lama data cache disimpan di server. Jadi mereka adalah hal yang sangat independen, jadi yang satu tidak diutamakan daripada yang lain.
sumber
Konfigurasi ini mengirim saya ke halaman login setiap dua menit, yang tampaknya bertentangan dengan jawaban sebelumnya
sumber
Bagi siapa pun yang tersandung pada pertanyaan ini, lihat dokumentasi ini dari MS - ini memiliki detail yang sangat bagus mengenai pengaturan Batas Waktu FormsAuthentication.
Dokumen ini menjelaskan secara rinci tentang komentar yang dibuat oleh bmode dalam Jawaban yang Diterima - tentang Cookie yang Persisten (Sesi vs Kedaluwarsa)
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/forms-authentication-configuration-and-advanced-topics-cs#specifying-the-tickets- nilai batas waktu
sumber