Freigeben über


HttpWebClientProtocol.CookieContainer Eigenschaft

Definition

Ruft die Auflistung der Cookies ab oder legt diese fest.

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

Eigenschaftswert

CookieContainer

Ein CookieContainer, der die Cookies für einen Webdienstclient darstellt.

Beispiele

Das folgende Codebeispiel ist ein Web Forms Client eines XML-Webdiensts, der den Sitzungszustand verwendet. Der Client speichert das HTTP-Cookie, das die Sitzung eindeutig identifiziert, indem es im Sitzungszustand des Clients gespeichert wird.

<%@ 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>

Hinweise

Wenn eine XML-Webdienstmethode den Sitzungszustand verwendet, wird ein Cookie in den Antwortheadern an den XML-Webdienstclient übergeben, der die Sitzung für diesen XML-Webdienstclient eindeutig identifiziert. Damit ein XML-Webdienst den Sitzungszustand für einen Client beibehalten kann, muss der Client das Cookie speichern. Clients erhalten das HTTP-Cookie, indem Sie eine neue Instanz erstellen CookieContainer und diese der CookieContainer Eigenschaft der Proxyklasse zuweisen, bevor Sie die XML-Webdienstmethode aufrufen. Wenn Sie den Sitzungszustand außer dem Zeitpunkt beibehalten müssen, an dem die Proxyklasseninstanz außerhalb des Gültigkeitsbereichs liegt, muss der Client das HTTP-Cookie zwischen Aufrufen des XML-Webdiensts speichern. Beispielsweise kann ein Web Forms-Client das HTTP-Cookie speichern, indem er den CookieContainer eigenen Sitzungszustand speichert. Da nicht alle XML-Webdienste sitzungszustand verwenden und daher clients nicht immer für die Verwendung der CookieContainer Eigenschaft eines Clientproxys erforderlich sind, muss die Dokumentation für den XML-Webdienst angeben, ob der Sitzungszustand verwendet wird.

Gilt für

Siehe auch