WSHttpBindingElement.AllowCookies Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která označuje, zda klient WCF bude automaticky ukládat a znovu odesílat všechny soubory cookie odeslané jednou webovou službou.
public:
property bool AllowCookies { bool get(); void set(bool value); };
[System.Configuration.ConfigurationProperty("allowCookies", DefaultValue=false)]
public bool AllowCookies { get; set; }
[<System.Configuration.ConfigurationProperty("allowCookies", DefaultValue=false)>]
member this.AllowCookies : bool with get, set
Public Property AllowCookies As Boolean
Hodnota vlastnosti
true
pokud se vyžaduje automatické zpracování souborů cookie; v opačném případě . false
- Atributy
Poznámky
Nastavení AllowCookies na true
je užitečné, když klient komunikuje s jednou webovou službou, která používá soubory cookie. Pokud přistupujete k více službám se stejným souborem cookie, nastavte AllowCookies na false
a budete muset ručně přidat hlavičku souboru cookie do každé odchozí zprávy. Následující kód ukazuje, jak to udělat:
MyWebServiceClient client = new MyWebServiceClient();
using (new OperationContextScope(client.InnerChannel))
{
client.DoSomething();
// Extract the cookie embedded in the received web service response
// and stores it locally
HttpResponseMessageProperty response = (HttpResponseMessageProperty)
OperationContext.Current.IncomingMessageProperties[
HttpResponseMessageProperty.Name];
sharedCookie = response.Headers["Set-Cookie"];
}
MyOtherWebServiceClient otherClient = new MyOtherWebServiceClient();
using (new OperationContextScope(otherClient.InnerChannel))
{
// Embeds the extracted cookie in the next web service request
// Note that we manually have to create the request object since
// since it doesn't exist yet at this stage
HttpRequestMessageProperty request = new HttpRequestMessageProperty();
request.Headers["Cookie"] = sharedCookie;
OperationContext.Current.OutgoingMessageProperties[
HttpRequestMessageProperty.Name] = request;
otherClient.DoSomethingElse();
}