Sdílet prostřednictvím


HttpWebClientProtocol.CookieContainer Vlastnost

Definice

Získá nebo nastaví kolekci souborů cookie.

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

Hodnota vlastnosti

CookieContainer

A CookieContainer , který představuje soubory cookie pro klienta webových služeb.

Příklady

Následující příklad kódu je Web Forms klient webové služby XML, která používá stav relace. Klient ukládá soubor cookie HTTP, který jedinečně identifikuje relaci uložením do stavu relace klienta.

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

Poznámky

Pokud metoda webové služby XML používá stav relace, pak se soubor cookie předá zpět v hlavičce odpovědi klientovi webové služby XML, který jedinečně identifikuje relaci pro tohoto klienta webové služby XML. Aby webová služba XML zachovala stav relace pro klienta, musí klient uložit soubor cookie. Klienti obdrží soubor cookie HTTP vytvořením nové instance CookieContainer a přiřazením této vlastnosti k CookieContainer vlastnosti třídy proxy před voláním metody webové služby XML. Pokud potřebujete zachovat stav relace nad rámec, když instance třídy proxy přestane být v rozsahu, klient musí uložit soubor cookie HTTP mezi voláními webové služby XML. Klient Web Forms může například uložit soubor cookie HTTP uložením CookieContainer do vlastního stavu relace. Vzhledem k tomu, že ne všechny webové služby XML používají stav relace, a proto klienti nemusí vždy používat CookieContainer vlastnost proxy klienta, musí dokumentace pro webovou službu XML uvést, zda se používá stav relace.

Platí pro

Viz také