Cara bekerja dengan Sesi di ASP.Net

HTTP adalah protokol tanpa status. Ini menunjukkan bahawa setiap kali permintaan baru dihantar dari klien ke pelayan, maklumat keadaan permintaan sebelumnya hilang. Terdapat beberapa cara untuk menyimpan dan mengurus keadaan di ASP.Net. Objek sesi adalah salah satunya, yang lain adalah objek Caching dan Aplikasi.

Caching meningkatkan prestasi aplikasi dengan meminimumkan penggunaan sumber dalam sistem anda. Anda boleh menyimpan data atau halaman Web yang sering digunakan untuk meningkatkan prestasi dan throughput dan skalabiliti aplikasi dengan mengurangkan penggunaan sumber pelayan.

Anda boleh menentukan sesi sebagai sesi penyambungan antara pelayan dan klien - objek sesi menyimpan data yang sesuai dengan sesi pengguna. Sesi adalah teknik pengurusan keadaan sisi pelayan yang digunakan untuk menyimpan maklumat khusus pengguna dalam memori untuk pengambilan kemudian.

Kaedah menyimpan data sesi

Objek sesi dibuat dan dikendalikan di bahagian pelayan. Mod penyimpanan sesi menentukan di mana data sesi anda harus disimpan. Keadaan sesi boleh disimpan dalam salah satu mod berikut:

  1. Dalam - Proses: Disimpan dalam Proses ASP.Net yang sama
  2. Pelayan Negeri: Disimpan dalam beberapa sistem lain
  3. Pelayan SQL: Disimpan dalam pangkalan data SQLServer
  4. Custom: ini membolehkan anda menyimpan data sesi menggunakan penyedia storan tersuai

Kaedah penyimpanan data sesi In-Proc adalah mod lalai dan juga mod terpantas dari semua mod simpanan yang ada. Dalam mod ini, data sesi disimpan dalam memori pelayan - di dalam proses pekerja ASP.Net. Anda harus menggunakan mod ini jika jumlah data yang perlu disimpan dalam sesi kurang dan jika anda tidak memerlukan data tersebut berterusan. Harus diingat bahawa data sesi yang disimpan dalam mod ini tidak stabil, iaitu, begitu sesi ditamatkan, data sesi akan hilang. Jadi, data dalam sesi tersedia selagi sesi itu masih hidup.

Dalam mod Pelayan Negeri, data sesi disimpan dalam proses yang berasingan - ini dipanggil Perkhidmatan Negeri ASP.Net. Dengan kata lain, data sesi dalam mod ini disimpan di luar proses pekerja ASP.Net atau kumpulan aplikasi di IIS. Tidak seperti mod In-Proc, data sesi dalam mod Pelayan Negeri disimpan, iaitu tidak hilang setelah aplikasi web anda dimulakan semula.

Coretan kod berikut menggambarkan bagaimana anda dapat mengkonfigurasi keadaan sesi dalam aplikasi anda untuk disimpan dalam mod 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