Maison > développement back-end > C++ > Comment accéder aux variables de session ASP.NET à partir de n'importe quelle classe ?

Comment accéder aux variables de session ASP.NET à partir de n'importe quelle classe ?

DDD
Libérer: 2025-01-15 19:47:49
original
522 Les gens l'ont consulté

How to Access ASP.NET Session Variables from Any Class?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal