IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème session et user controle .ascx


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut Problème session et user controle .ascx
    Bonjour à tous,

    J'ai un problème que j'arrive vraiment pas à comprendre.

    J'ai développé une interface login mdp ASP.NET/C# et suivant le droit qu'on a dans l'application, on est admin ou simple user.

    J'ai donc une fonction private bool isAdmin(string user_name) qui me retourne si un user est ou pas admin

    Au moment de retourner le statut du user j'appel une variable de session Session["is_user_admin"] = userAdmin; que j'assigne avec la variable local booléenne userAdmin.

    Bon jusqu'ici il ne semble pas y avoir de souci

    Ensuite, je vais dans le Web.config pour activer mes sessions grâce à <sessionState mode="InProc" cookieless="AutoDetect" timeout="20" />

    Après je crée mon menu à l'aide d'un user contrôle menu.ascx où j'ai mis deux menu, un user et l'autre admin, qui s'afficheront en fonction de la variable de session. Pour cela, j'ai un test qui se fait lors du page_load du menu.ascx.cs qui est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    protected void Page_Load(object sender, EventArgs e)
        {
            if ((Boolean) Session["is_user_admin"] == true)
            {
                Menu_user.Visible = false;
            }
            else
            {
                Menu_admin.Visible = false;
            }
        }
    Et c'est là que rien ne va... Si la variable de session est à true tout marche mais si elle est à false il me lance une exception que je ne comprend pas :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.

    Erreur source:

    Ligne 14 : protected void Page_Load(object sender, EventArgs e)
    Ligne 15 : {
    Ligne 16 : if ((Boolean)Session["is_user_admin"] == true)
    Ligne 17 : {
    Ligne 18 : Menu_user.Visible = false;
    Si quelqu'un pouvait m'expliquer ou ai-je fais n'importe quoi ça m'aiderais beaucoup.

    Merci à tous

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Menu_admin semble ne pas "exister"

  3. #3
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    salut lutecefalco et merci pour ton aide

    Pourtant dans mon menu.ascx j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="menu.ascx.cs" Inherits="menu" %>
     
    <asp:Menu ID="Menu_admin" runat="server" MaximumDynamicDisplayLevels="1" Orientation="Horizontal" Target="_parent">
        <Items>
            <asp:MenuItem NavigateUrl="admin.aspx" Text="Home" Value="Home"></asp:MenuItem>
            <asp:MenuItem NavigateUrl="rapport.aspx" Text="Rapport" Value="Rapport">
                <asp:MenuItem NavigateUrl="saisie.aspx" Text="Saisie" Value="Saisie"></asp:MenuItem>
                <asp:MenuItem NavigateUrl="creation.aspx" Text="Création" Value="Création"></asp:MenuItem>
                <asp:MenuItem NavigateUrl="impression.aspx" Text="Impression" Value="Impression"></asp:MenuItem>
            </asp:MenuItem>
            <asp:MenuItem NavigateUrl="administration.aspx" Text="Administration" Value="Administration">
                <asp:MenuItem NavigateUrl="activite.aspx" Text="Activités" Value="Activités"></asp:MenuItem>
                <asp:MenuItem NavigateUrl="client.aspx" Text="Clients" Value="Clients"></asp:MenuItem>
            </asp:MenuItem>
         </Items>
    </asp:Menu>
     
    <asp:Menu ID="Menu_user" runat="server" MaximumDynamicDisplayLevels="1" Orientation="Horizontal" Target="_parent">
        <Items>
            <asp:MenuItem NavigateUrl="admin.aspx" Text="Home" Value="Home"></asp:MenuItem>
                <asp:MenuItem NavigateUrl="rapport.aspx" Text="Rapport" Value="Rapport">
                <asp:MenuItem NavigateUrl="saisie.aspx" Text="Saisie" Value="Saisie"></asp:MenuItem>
                <asp:MenuItem NavigateUrl="impression.aspx" Text="Impression" Value="Impression"></asp:MenuItem>
            </asp:MenuItem>
            </Items>
    </asp:Menu>
    Donc, ça ne peut être cela, carrément que je suis au fond du trou la

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Un point d'arret, debug et hop le tour est joué.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    La référence d'objet n'est pas définie à une instance d'un objet.
    if ((Boolean) Session["is_user_admin"] == true)
    Il est en train de te dire que ton Session["is_user_admin"] est soit à true, soit jamais instancié

    (question toute conne : tu lui mets à un moment la valeur false à cet index là ?)

  6. #6
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Merci pour vos réponse

    Pendant que vous me répondiez je venais de trouver la réponse.

    J'avais instancier la variable de session à false mais dans la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected void Session_Start(Object sender, EventArgs e)
        {
            Session["tentative_error"] = 0;
            Session["is_user_admin"] = false;
        }
    Je croyais que c'était bon, bah na Problème de portée d'ou cette erreur que je comprenais pas, car je croyais bien faire en la mettant dans Session_Start.

    Voilà comment on perd 3h ... sur un problème qui à pris 2 minute à régler...

    Merci à tous pour votre aide et réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage user control ascx dynamiquement
    Par ThistleDub dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/08/2009, 10h31
  2. Ajout événement clic sur user control ascx
    Par Nixar dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/09/2008, 11h18
  3. Problèmes user control et événement
    Par gridin dans le forum VB.NET
    Réponses: 3
    Dernier message: 04/05/2007, 14h40
  4. problème avec user Control
    Par shirya dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/03/2007, 15h02
  5. [WebForms][User Controls] Problème pour accéder aux CSS
    Par BouB dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 04/12/2006, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo