Procedura: creare una sessione protetta
Ad eccezione dell'associazione basicHttpBinding Element, le associazioni fornite dal sistema in Windows Communication Foundation (WCF) utilizzano automaticamente sessioni protette quando è abilitata la protezione dei messaggi.
Per impostazione predefinita, le sessioni protette non restano attive quando un server Web viene riciclato. Quando si stabilisce una sessione protetta, il client e il servizio memorizzano nella cache la chiave associata alla sessione protetta. Durante lo scambio dei messaggi, viene scambiato solo un identificatore della chiave memorizzata nella cache. Se il server Web viene riciclato, anche la cache viene riciclata, pertanto il server Web non può recuperare la chiave memorizzata nella cache per l'identificatore. In questo caso, al client viene restituita un'eccezione. Le sessioni protette che utilizzano un token del contesto di protezione con stato (SCT) possono restare attive quando un server Web viene riciclato. Per ulteriori informazioni sull'utilizzo di un token del contesto di protezione con stato in una sessione protetta, vedere Procedura: creare un token di contesto di protezione con stato per una sessione protetta.
Per specificare che un servizio utilizza sessioni protette mediante una delle associazioni fornite dal sistema
Configurare un servizio per l'utilizzo di un'associazione fornita dal sistema che supporta la protezione dei messaggi.
Ad eccezione dell'associazione basicHttpBinding Element, se le associazioni fornite dal sistema sono configurate per l'utilizzo della protezione dei messaggi, in WCF vengono utilizzate automaticamente le sessioni protette. Nella tabella seguente vengono elencate le associazioni fornite dal sistema che supportano la protezione dei messaggi e viene indicato se la protezione del messaggio è il meccanismo di protezione predefinito.
Associazione fornita dal sistema Elemento Configuration Protezione dei messaggi attivata per impostazione predefinita No
Sì
Sì
Sì
No
No
Nell'esempio di codice seguente viene utilizzata la configurazione per specificare un'associazione denominata
wsHttpBinding_Calculator
che utilizza la protezione dei messaggi wsHttpBinding Element e le sessioni protette.<bindings> <WSHttpBinding> <binding name = "wsHttpBinding_Calculator"> <security mode="Message"> <message clientCredentialType="Windows"/> </security> </binding> </WSHttpBinding> </bindings>
Nell'esempio di codice seguente viene specificato che wsHttpBinding Element, la protezione dei messaggi e le sessioni protette vengono utilizzati per proteggere il servizio
secureCalculator
.Nota
Le sessioni protette possono essere disattivate per wsHttpBinding Element impostando l'attributo establishSecurityContext su false. Per le altre associazioni fornite dal sistema, è possibile disattivare le sessioni protette solo creando un'associazione personalizzata.
Per specificare che un servizio utilizza sessioni protette mediante un'associazione personalizzata
Creare un'associazione personalizzata che specifica che i messaggi SOAP sono protetti mediante una sessione protetta.
Per ulteriori informazioni sulla creazione di un'associazione personalizzata, vedere Procedura: personalizzare un'associazione fornita dal sistema.
Nell'esempio di codice seguente viene utilizzata la configurazione per specificare un'associazione personalizzata che protegge i messaggi mediante una sessione protetta.
<bindings> <!-- configure a custom binding --> <customBinding> <binding name="customBinding_Calculator"> <security authenticationMode="SecureConversation" /> <secureConversationBootstrap authenticationMode="SspiNegotiated" /> <textMessageEncoding messageVersion="Soap12WSAddressing10" writeEncoding="utf-8"/> <httpTransport/> </binding> </customBinding> </bindings>
Nell'esempio di codice seguente viene creata un'associazione personalizzata che utilizza la modalità di autenticazione MutualCertificate per l'avvio automatico di una sessione protetta.
Vedere anche
Concetti
Panoramica sulle associazioni di Windows Communication Foundation