none
Variable Session RRS feed

  • Question

  • Bonjour, j'ai une application web sous layouts, j'ai voulu utiliser Session dans ma page aspx mais une erreur se produit.


    Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.   at System.Web.UI.Page.get_Session()
       at ProjectManagement.Page_Load(Object sender, EventArgs e)



    Bon j'ai mis enableSessionState=true dans le web.config de mon site sharepoint situé sous (VirtualDirectory) mais ca na rien changé.

    Svp, pouvez vous m'aider.

    Merci

    mercredi 16 avril 2008 08:38

Réponses

  • La propriété Params retourne une collection contient d'autres variables que celles de la query string. variables de formulaire, variables de serveur, et variables de cookies.

     

    Accéder directement à Request["nomDeVariable"] permet la même chose mais de manière plus performante car il ne charge pas les variables de formulaire, serveur et cookies si la variable demandée est trouvée dans la query string.

     

    Si vous vous étonnez du HttpContext.Current pour accéder à l'objet HttpRequest, c'est parceque je vous ai fourni un code qui fonctionne même si vous ne disposez pas d'une propriété Request, pour être sûr qu'il fonctionne chez vous, ne sachant pas dans quelle classe vous souhaitez l'utiliser.

     

    HttpContext.Current retourne toujours l'instance d'HttpContext courante.

     

     

    mercredi 16 avril 2008 09:55

Toutes les réponses

  • Bonjour,

     

    il faut aussi décommenter la ligne suivante dans la balise <httpModules> du Web.Config  :

     

    Code Snippet
    <!--
    <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
    -->

     

     

    Attention toutefois en environnement de production, si vous disposez de plusieurs serveurs frontaux, utiliser les variables de sessions vous impose de centraliser ces variables dans une base de donnée. Veuillez visitez ce lien pour plus d'informations sur le sujet.
    mercredi 16 avril 2008 09:11
  • Merci pour votre réponse, bon je vais utiliser les variables session juste pour sauvgarder un ID pour pouvoir activer des onglets dans ma page donc avec cet ID je fais mon traitement de la page_load de chaqu'un des onglets.
    bon c'est une alternative que j'ai choisit, est ce que vous avez une autre idée ?

    Merci
    mercredi 16 avril 2008 09:22
  • Dans ce cas je vous conseille de passer votre identifiant dans l'url.

     

    exemple http://server/site/_layouts/XXXX/page.aspx?monid=5

     

    Vous pouvez alors récupérer votre identifiant depuis n'importe votre page ou même depuis un contrôle avec le code suivant :

     

    Code Snippet

    String id = HttpContext.Current.Request["monid"];

     

     

    Attention, la query string ne gère que des chaines de caractères, si votre identifiant est un Int32 ou un Guid il faudra le convertir manuellement.

     

    Code Snippet
    Int32
    id = Int32.Parse(HttpContext.Current.Request["monid"]);

     

     

     

    mercredi 16 avril 2008 09:32
  • Quelle est la différence entre Request.Params et 'HttpContext.Current.Request["monid"];
    mercredi 16 avril 2008 09:42
  • La propriété Params retourne une collection contient d'autres variables que celles de la query string. variables de formulaire, variables de serveur, et variables de cookies.

     

    Accéder directement à Request["nomDeVariable"] permet la même chose mais de manière plus performante car il ne charge pas les variables de formulaire, serveur et cookies si la variable demandée est trouvée dans la query string.

     

    Si vous vous étonnez du HttpContext.Current pour accéder à l'objet HttpRequest, c'est parceque je vous ai fourni un code qui fonctionne même si vous ne disposez pas d'une propriété Request, pour être sûr qu'il fonctionne chez vous, ne sachant pas dans quelle classe vous souhaitez l'utiliser.

     

    HttpContext.Current retourne toujours l'instance d'HttpContext courante.

     

     

    mercredi 16 avril 2008 09:55