HttpSessionState.IsCookieless Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan nilai yang menunjukkan apakah ID sesi disematkan di URL atau disimpan dalam cookie HTTP.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
Nilai Properti
true
jika sesi disematkan di URL; jika tidak, false
.
Contoh
Contoh kode berikut mengatur cookieless
atribut sesi ke true dalam file Web.config.
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
Keterangan
ASP.NET mengidentifikasi sesi secara unik dengan setiap browser. Secara default, pengidentifikasi unik untuk sesi disimpan dalam cookie sesi yang tidak kedaluwarsa di browser. Anda dapat menentukan bahwa pengidentifikasi sesi tidak disimpan dalam cookie dengan mengatur cookieless
atribut ke true
dalam elemen konfigurasi sessionState .
Catatan
Untuk meningkatkan keamanan aplikasi Anda, aplikasi Anda harus memungkinkan pengguna untuk keluar, di mana aplikasi harus memanggil Abandon metode . Ini mengurangi potensi sumber yang tidak diinginkan menggunakan pengidentifikasi unik di URL untuk mengambil data privat yang disimpan dalam sesi untuk pengguna.
ASP.NET mempertahankan status sesi tanpa cookie dengan secara otomatis memasukkan ID sesi unik ke dalam URL halaman. Misalnya, URL berikut telah dimodifikasi oleh ASP.NET untuk menyertakan ID sesi unik lit3py55t21z5v55vlm25s55:
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET memodifikasi tautan yang terkandung di semua halaman yang diminta dengan menyematkan nilai ID sesi di tautan tepat sebelum mengirim setiap halaman ke browser. Status sesi dipertahankan selama pengguna mengikuti jalur tautan yang disediakan situs. Namun, jika agen pengguna menulis ulang URL, instans keadaan sesi akan hilang.
ID sesi disematkan di URL setelah garis miring yang mengikuti nama aplikasi dan sebelum file atau pengidentifikasi direktori virtual yang tersisa. Ini memungkinkan ASP.NET untuk menyelesaikan nama aplikasi sebelum melibatkan SessionStateModule dalam permintaan.
Secara default, pengidentifikasi sesi yang digunakan dalam sesi tanpa cookie didaur ulang. Artinya, jika permintaan dibuat dengan ID sesi yang telah kedaluwarsa, sesi baru dimulai menggunakan ID sesi yang disediakan dengan permintaan. Perilaku ini dapat mengakibatkan berbagi data sesi yang tidak diinginkan ketika tautan yang berisi ID sesi tanpa cookie dibagikan dengan beberapa browser, mungkin melalui mesin pencari atau program lainnya. Anda dapat mengurangi kemungkinan data sesi dibagikan oleh beberapa klien dengan menonaktifkan daur ulang pengidentifikasi sesi. Untuk melakukan ini, atur regenerateExpiredSessionId
atribut elemen konfigurasi sessionState ke true
. Ini akan mengakibatkan ID sesi baru dihasilkan ketika permintaan sesi tanpa cookie dibuat dengan ID sesi yang kedaluwarsa. Perhatikan bahwa jika permintaan yang dibuat dengan ID sesi yang kedaluwarsa menggunakan metode HTTP POST
, maka data yang diposting akan hilang ketika regenerateExpiredSessionId
adalah true
, seperti ASP.NET melakukan pengalihan untuk memastikan bahwa browser memiliki pengidentifikasi sesi baru di URL.
Catatan
Saat mengatur regenerateExpiredSessionId
atribut untuk true
mengurangi kemungkinan berbagi data sesi yang tidak diinginkan, itu tidak melindungi dari sumber yang tidak diinginkan mendapatkan akses ke sesi pengguna lain dengan mendapatkan SessionID nilai dan menyertakannya dalam permintaan ke server. Jika Anda menyimpan informasi privat atau sensitif dalam status sesi, disarankan agar Anda menggunakan SSL untuk mengenkripsi komunikasi apa pun antara browser dan server yang menyertakan SessionID.