Maison > développement back-end > C++ > Comment puis-je accéder aux variables de session ASP.NET à partir de classes externes ?

Comment puis-je accéder aux variables de session ASP.NET à partir de classes externes ?

Susan Sarandon
Libérer: 2025-01-15 19:56:44
original
166 Les gens l'ont consulté

How Can I Access ASP.NET Session Variables from External Classes?

Accès aux variables de session ASP.NET en dehors des pages Web

Dans ASP.NET, accéder aux variables de session directement dans des pages Web ou des contrôles est simple à l'aide de Session["key"]. Cependant, y accéder depuis des classes externes (comme celles du dossier App_Code) nécessite une approche différente.

Méthode d'accès direct :

Le moyen le plus direct de récupérer les valeurs de session de n'importe quelle classe consiste à utiliser System.Web.HttpContext.Current.Session["key"]. Cela permet d'accéder à l'état de la session quel que soit l'emplacement de la classe. Par exemple, pour obtenir la variable de session "loginId":

<code class="language-csharp">int loginId = (int)System.Web.HttpContext.Current.Session["loginId"];</code>
Copier après la connexion

Approche améliorée : un cours de synthèse de session

Pour améliorer la sécurité des types, la maintenabilité et la clarté du code, une classe wrapper est recommandée. Cela centralise la gestion des clés de session, réduit la conversion de type et permet l'initialisation des valeurs par défaut.

Voici un exemple :

<code class="language-csharp">public class SessionWrapper
{
    private static SessionWrapper _instance;

    public static SessionWrapper Instance
    {
        get
        {
            return _instance ??= new SessionWrapper();
        }
    }

    public string Property1 
    { 
        get => (string)System.Web.HttpContext.Current.Session["Property1"] ?? ""; 
        set => System.Web.HttpContext.Current.Session["Property1"] = value; 
    }

    public int LoginId 
    { 
        get => (int?)System.Web.HttpContext.Current.Session["LoginId"] ?? 0; 
        set => System.Web.HttpContext.Current.Session["LoginId"] = value; 
    }
}</code>
Copier après la connexion

Désormais, l'accès aux variables de session devient plus propre :

<code class="language-csharp">int loginId = SessionWrapper.Instance.LoginId;</code>
Copier après la connexion

Cette méthode offre une meilleure gestion des erreurs (en utilisant l'opérateur de fusion nulle ??) et évite les exceptions potentielles dues aux incompatibilités de types. L'utilisation de propriétés permet également de définir des valeurs de session ainsi que de les récupérer.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal