Accès aux variables de session ASP.NET dans n'importe quelle classe
Les sessions ASP.NET stockent des données spécifiques à l'utilisateur sur plusieurs requêtes. Alors que l'accès direct via Session["variableName"]
fonctionne dans les pages Web et les contrôles, l'accès aux variables de session à partir d'autres classes nécessite une approche différente.
Solution : Utiliser HttpContext.Current.Session
Pour accéder aux variables de session de n'importe quelle classe (y compris celles du dossier App_Code), exploitez l'objet System.Web.HttpContext.Current.Session
. Cet objet représente la requête HTTP actuelle et son état de session associé.
Exemple de code
Cet exemple montre comment accéder à une variable de session nommée "loginId" à partir d'une classe dans 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>
Approche améliorée : un cours de synthèse de session
Pour une sécurité de type et une clarté du code améliorées, une classe wrapper fournit une solution plus robuste. Cette classe conserve une seule instance au sein de la session et expose les propriétés permettant d'accéder aux variables de session, éliminant ainsi le transtypage et les clés codées en dur.
Exemple de classe Wrapper
<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>
Accès avec la classe Wrapper
Accéder à "loginId" à l'aide du wrapper est simple :
<code class="language-csharp">MySessionWrapper session = MySessionWrapper.Current; int loginId = session.LoginId;</code>
Cette méthode offre un moyen plus propre et plus maintenable de gérer les variables de session dans les classes de votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!