91 votes

Comment puis-je accéder à une session dans une méthode Web?

Puis-je utiliser les valeurs de session dans un WebMethod ?

J'ai essayé d'utiliser System.Web.Services.WebMethod(EnableSession = true) mais je ne peux pas accéder au paramètre de session comme dans cet exemple :

     [System.Web.Services.WebMethod(EnableSession = true)]
    [System.Web.Script.Services.ScriptMethod()]
    public static String checaItem(String id)
    { 
        return "zeta";
    }
 

voici le JS qui appelle le webmethod:

     $.ajax({
        type: "POST",
        url: 'Catalogo.aspx/checaItem',
        data: "{ id : 'teste' }",
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            alert(data);
        }
    });
 

124voto

WraithNath Points 7244

Vous pouvez utiliser:

 HttpContext.Current.Session
 

Mais ce sera null sauf si vous spécifiez également EnableSession=true :

 [System.Web.Services.WebMethod(EnableSession = true)]
public static String checaItem(String id)
{ 
    return "zeta";
}
 

10voto

Warlock Points 2253

Il existe deux façons d'activer la session pour une méthode Web:

 1. [WebMethod(enableSession:true)]

2. [WebMethod(EnableSession = true)]
 

Le premier avec l'argument constructeur enableSession:true ne fonctionne pas pour moi. Le second avec EnableSession propriété fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X