Bagaimana bekerja dengan Sesi di ASP.Net

HTTP adalah protokol tanpa negara. Ini menyiratkan bahwa setiap kali permintaan baru dikirim dari klien ke server, informasi status permintaan sebelumnya hilang. Ada beberapa cara untuk menyimpan dan mengelola status di ASP.Net. Objek sesi adalah salah satunya, objek lainnya adalah objek Caching dan Aplikasi.

Caching meningkatkan kinerja aplikasi dengan meminimalkan konsumsi sumber daya di sistem Anda. Anda dapat menyimpan data atau halaman Web yang sering digunakan untuk meningkatkan kinerja dan throughput aplikasi serta skalabilitas dengan mengurangi konsumsi sumber daya server.

Anda dapat menentukan sesi sebagai sesi konektivitas antara server dan klien - objek sesi menyimpan data yang sesuai dengan sesi pengguna. Sesi adalah teknik manajemen status sisi server yang digunakan untuk menyimpan informasi spesifik pengguna dalam memori untuk pengambilan nanti.

Mode menyimpan data sesi

Objek sesi dibuat dan dikelola di sisi server. Mode penyimpanan sesi menentukan di mana data sesi Anda harus disimpan. Status sesi dapat disimpan dalam salah satu mode berikut:

  1. Dalam - Proses: Disimpan dalam Proses ASP.Net yang sama
  2. Server Negara: Disimpan di beberapa sistem lain
  3. SQL Server: Disimpan dalam database SQLServer
  4. Kustom: ini memungkinkan Anda menyimpan data sesi menggunakan penyedia penyimpanan kustom

Mode penyimpanan data sesi In-Proc adalah mode default dan juga yang tercepat dari semua mode penyimpanan yang tersedia. Dalam mode ini, data sesi disimpan dalam memori server - di dalam proses pekerja ASP.Net. Anda harus menggunakan mode ini jika jumlah data yang perlu disimpan dalam sesi kurang dan jika Anda tidak membutuhkan data untuk disimpan. Perlu dicatat bahwa data sesi yang disimpan dalam mode ini bersifat volatil, yaitu segera setelah sesi diakhiri, data sesi hilang. Jadi, data dalam sesi tersedia selama sesi tersebut aktif.

Dalam mode Server Negara, data sesi disimpan dalam proses terpisah - ini disebut Layanan Negara ASP.Net. Dengan kata lain, data sesi dalam mode ini disimpan di luar proses pengerjaan ASP.Net atau kumpulan aplikasi di IIS. Tidak seperti mode In-Proc, data sesi dalam mode Server Negara dipertahankan, yaitu tidak hilang setelah aplikasi web Anda dimulai ulang.

Cuplikan kode berikut menggambarkan bagaimana Anda dapat mengonfigurasi status sesi dalam aplikasi Anda untuk disimpan dalam mode ini.

 

   

      stateConnectionString="tcpip=Server:1234"

      cookieless="false"

      timeout="20"/>

 

The SQLServer mode of session data storage is used to persist session data of your application in the SQLServer database. Similar to the State Server mode of session data storage, the SQLServer mode also enables you to persist session data of your application across application restarts. Note that you should ensure that the ASP.Net session state database is created before using this mode. You can create this database using the Aspnet_regsql.exe command line utility.

The following code snippet shows how you can configure your application to store session data in a SQLServer database.

 

   

       sqlConnectionString="data source=server;user id=joydip;[email protected]"

       cookieless="false" timeout="20" />

 

Support for Session data compression

Microsoft's ASP.Net 4 introduced a new feature: session state compression. With ASP.Net 4 and onward, you can leverage this built-in feature to compress session data for storing out-of-process sessions. To take advantage of this feature, all you need to do is set the compressionEnabled attribute to "true" in the configuration file of your application. The following code snippet illustrates how this can be configured.

  mode="SQLServer"

  stateConnectionString="some connection string..."

  compressionEnabled="true"/>

Session state enables you to store user specific data in the memory and identify a particular request uniquely.  Session data is stored as key/value pairs in the SessionStateItemCollection and can be accessed using the HttpContext.Session property.

The following code examples show how you can store and retrieve session data.

HttpSessionState.Session["UserName"] = "John"; //stores session data

string str = HttpSessionState.Session["UserName"].ToString();

// Retrieves session data

HttpSessionState.Remove("Key to remove");

//Removes an object from the session state