Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

WebMethodAttribute.EnableSession propriété

 

Date de publication : novembre 2016

Indique si l’état de session est activé pour une méthode de service Web XML.

Espace de noms:   System.Web.Services
Assembly:  System.Web.Services (dans System.Web.Services.dll)

public bool EnableSession { get; set; }

Valeur de propriété

Type: System.Boolean

true Si l’état de session est activé pour une méthode de service Web XML. La valeur par défaut est false.

Afin de stocker l’état de session dans ASP.NET HttpSessionState de l’objet, le service Web XML doit hériter de WebService et un WebMethodAttribute appliqué à la méthode de service Web XML, définissant la EnableSession propriété true. Si l’état de session n’est pas nécessaire pour une méthode de service Web XML, sa désactivation peut améliorer les performances.

Un client de service Web XML est identifié de manière unique par un cookie HTTP retourné par un service Web XML. Pour un service Web XML maintenir l’état de session pour un client, le client doit rendre le cookie persistant. Les clients peuvent recevoir le cookie HTTP en créant une nouvelle instance de CookieContainer et en l’assignant à la CookieContainer propriété de la classe proxy avant d’appeler la méthode de service Web XML. Si vous avez besoin de conserver l’état de session même lorsque l’instance de la classe proxy est hors de portée, le client doit rendre persistant le cookie HTTP entre les appels au service Web XML. Par exemple, un client Web Forms peut rendre persistant le cookie HTTP en enregistrant le CookieContainer dans son propre état de session. Étant donné que tous les services Web XML utilisent l’état de session et ainsi les clients ne sont pas toujours besoin d’utiliser le CookieContainer propriété d’un proxy client, la documentation pour le service Web XML doit indiquer si l’état de session est utilisé.

L’exemple ci-dessous utilise l’état de session pour déterminer combien de fois une session particulière accède à la méthode de service Web XML SessionHitCounter.

L’exemple de code suivant est un client Web Forms d’un service Web XML qui utilise l’état de session. Le client rend persistant le cookie HTTP qui identifie de façon unique la session en le stockant dans l’état de session du client.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Net" %>

<html>

    <script runat="server">

        void EnterBtn_Click(Object Src, EventArgs E) 
	{
	  // Create a new instance of a proxy class for your XML Web service.
	  ServerUsage su = new ServerUsage();
          CookieContainer cookieJar;

	  // Check to see if the cookies have already been saved for this session.
	  if (Session["CookieJar"] == null) 
	    cookieJar= new CookieContainer();
          else
	   cookieJar = (CookieContainer) Session["CookieJar"];

		// Assign the CookieContainer to the proxy class.
		su.CookieContainer = cookieJar;

	  // Invoke an XML Web service method that uses session state and thus cookies.
	  int count = su.PerSessionServiceUsage();         

	  // Store the cookies received in the session state for future retrieval by this session.
	  Session["CookieJar"] = cookieJar;

          // Populate the text box with the results from the call to the XML Web service method.
          SessionCount.Text = count.ToString();  
        }

    </script>
    <body>
       <form runat=server ID="Form1">

             Click to bump up the Session Counter.
             <p>
             <asp:button text="Bump Up Counter" Onclick="EnterBtn_Click" runat=server ID="Button1" NAME="Button1"/>
             <p>
             <asp:label id="SessionCount"  runat=server/>

       </form>
    </body>
</html>

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: