Partager via


HttpWebClientProtocol.CookieContainer Propriété

Définition

Obtient ou définit la collection de cookies.

public:
 property System::Net::CookieContainer ^ CookieContainer { System::Net::CookieContainer ^ get(); void set(System::Net::CookieContainer ^ value); };
public System.Net.CookieContainer CookieContainer { get; set; }
member this.CookieContainer : System.Net.CookieContainer with get, set
Public Property CookieContainer As CookieContainer

Valeur de propriété

CookieContainer

CookieContainer représentant les cookies d'un client de services Web.

Exemples

L’exemple de code suivant est un client Web Forms d’un service Web XML qui utilise l’état de session. Le client stocke le cookie HTTP qui identifie de manière 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>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Net" %>

<html>

    <script runat=server>

        Public Sub EnterBtn_Click(src As Object, E As EventArgs) 

      ' Create a new instance of a proxy class for your XML Web service.
      Dim su As ServerUsage = new ServerUsage()
          Dim cookieJar As CookieContainer

      ' Check to see if the cookies have already been saved for this session.
      If (Session("CookieJar") Is Nothing) 
        cookieJar= new CookieContainer()
          Else
       cookieJar = Session("CookieJar")
      End If
   

        ' Assign the CookieContainer to the proxy class.
        su.CookieContainer = cookieJar

      ' Invoke an XML Web service method that uses session state and thus cookies.
      Dim count As Integer = 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()  
    End Sub
         
    </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>

Remarques

Si une méthode de service Web XML utilise l’état de session, un cookie est passé dans les en-têtes de réponse au client de service web XML qui identifie de manière unique la session pour ce client de service web XML. Pour qu’un service Web XML conserve l’état de session d’un client, le client doit stocker le cookie. Les clients reçoivent le cookie HTTP en créant une nouvelle instance et CookieContainer en affectant cela à la CookieContainer propriété de la classe proxy avant d’appeler la méthode de service web XML. Si vous devez conserver l’état de session au-delà du moment où l’instance de classe proxy est hors d’étendue, le client doit stocker le cookie HTTP entre les appels au service Web XML. Par exemple, un client Web Forms peut stocker le cookie HTTP en enregistrant le CookieContainer fichier dans son propre état de session. Étant donné que tous les services Web XML utilisent l’état de session et que les clients ne sont donc pas toujours tenus d’utiliser la CookieContainer propriété d’un proxy client, la documentation du service Web XML doit indiquer si l’état de session est utilisé.

S’applique à

Voir aussi