Mengakses Pembolehubah Sesi ASP.NET dalam Mana-mana Kelas
Sesi ASP.NET menyimpan data khusus pengguna merentas berbilang permintaan. Walaupun akses terus melalui Session["variableName"]
berfungsi dalam halaman web dan kawalan, mengakses pembolehubah sesi dari kelas lain memerlukan pendekatan yang berbeza.
Penyelesaian: Menggunakan HttpContext.Current.Session
Untuk mengakses pembolehubah sesi daripada mana-mana kelas (termasuk dalam folder App_Code), manfaatkan objek System.Web.HttpContext.Current.Session
. Objek ini mewakili permintaan HTTP semasa dan keadaan sesi yang berkaitan.
Contoh Kod
Contoh ini menunjukkan cara untuk mengakses pembolehubah sesi bernama "loginId" daripada kelas dalam App_Code:
<code class="language-csharp">using System.Web; namespace MyApplication { public class MyClass { public int LoginId { get { return (int)HttpContext.Current.Session["loginId"]; } set { HttpContext.Current.Session["loginId"] = value; } } } }</code>
Pendekatan yang Diperbaiki: Kelas Pembalut Sesi
Untuk keselamatan jenis yang dipertingkatkan dan kejelasan kod, kelas pembalut menyediakan penyelesaian yang lebih mantap. Kelas ini mengekalkan satu tika dalam sesi dan mendedahkan sifat untuk mengakses pembolehubah sesi, menghapuskan penghantaran jenis dan kunci berkod keras.
Contoh Kelas Pembungkus
<code class="language-csharp">namespace MyApplication { public class MySessionWrapper { public int LoginId { get; set; } public static MySessionWrapper Current { get { MySessionWrapper session = (MySessionWrapper)HttpContext.Current.Session["__MySession"]; if (session == null) { session = new MySessionWrapper(); HttpContext.Current.Session["__MySession"] = session; } return session; } } } }</code>
Mengakses dengan Kelas Pembungkus
Mengakses "loginId" menggunakan pembungkus adalah mudah:
<code class="language-csharp">MySessionWrapper session = MySessionWrapper.Current; int loginId = session.LoginId;</code>
Kaedah ini menawarkan cara yang lebih bersih dan boleh diselenggara untuk mengurus pembolehubah sesi merentas kelas aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah Sesi ASP.NET dari Mana-mana Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!