Procedura: proteggere i messaggi in sessioni affidabili
In questo argomento vengono delineati i passaggi necessari per attivare la protezione a livello di messaggio per i messaggi scambiati all'interno di una sessione affidabile utilizzando una delle associazioni fornite dal sistema che supportano tale sessione, ma non per impostazione predefinita. Attivare una sessione affidabile protetta in modo imperativo, mediante codice, o in modo dichiarativo, nel file di configurazione. In questa procedura vengono utilizzati i file di configurazione del client e del servizio per attivare la sessione affidabile protetta.
Questa procedura è costituita dalle tre attività chiave seguenti:
Specificare che il client e il servizio si scambiano messaggi in una sessione affidabile.
Richiedere la protezione a livello di messaggio all'interno della sessione affidabile.
Specificare il tipo di credenziale client che il client deve utilizzare per essere autenticato con il servizio.
Nella prima attività, è importante che l'elemento di configurazione endpoint contenga un attributo bindingConfiguration
che faccia riferimento a una configurazione di associazione denominata, in questo esempio, MessageSecurity
. L'elemento di configurazione <binding> fa quindi riferimento a questo nome per abilitare sessioni affidabili impostando l'attributo enabled
dell'elemento <reliableSession> su true
. È possibile richiedere che le garanzie di recapito ordinato siano disponibili all'interno di una sessione affidabile impostando l'attributo ordered
su true
.
Per l'originale dell'esempio su cui si basa questa procedura di configurazione, vedere WS Reliable Session.
Gli elementi essenziali della seconda attività vengono eseguiti impostando l'attributo mode
dell'elemento <security> contenuto nell'elemento <binding> del client e del servizio su Message
.
Gli elementi essenziali della terza attività vengono eseguiti impostando l'attributo clientCredentialType
dell'elemento <message> contenuto nell'elemento <security> del client e del servizio su Certificate
.
Nota
Quando si utilizza la protezione dei messaggi con sessioni affidabili, la messaggistica affidabile tenta di autenticare un client non autenticato fino al verificarsi di un timeout, invece di generare un'eccezione al primo errore.
Configurare il servizio con una classe WSHttpBinding per utilizzare una sessione affidabile
Questa procedura è descritta in Procedura: Scambiare messaggi all'interno di una sessione affidabile.
Configurare il client con una classe WSHttpBinding per utilizzare una sessione affidabile
Questa procedura è descritta in Procedura: Scambiare messaggi all'interno di una sessione affidabile.
Impostare la modalità e la proprietà ClientCredentialType nella configurazione
Aggiungere un elemento di associazione appropriato all'elemento <bindings> del file di configurazione. Nell'esempio seguente viene aggiunto un elemento <wsHttpBinding>.
Aggiungere un elemento <binding> e impostare il relativo attributo
name
su un valore appropriato. Nell'esempio viene usato il nomeMessageSecurity
.Aggiungere un elemento <security> e quindi impostare l'attributo
mode
suMessage
.All'interno dell'elemento <security>, aggiungere un elemento <message> e impostare l'attributo
clientCredentialType
suCertificate
.
<wsHttpBinding>
<binding name="MessageSecurity">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>