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. È possibile 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> può quindi fare riferimento a questo nome per attivare 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, se il client non viene autenticato, la messaggistica affidabile tenta di autenticarlo fino al verificarsi di un timeout, invece di generare un'eccezione al primo errore.
Per configurare il servizio con una classe WSHttpBinding per utilizzare una sessione affidabile
- Questa procedura viene descritta in Procedura: scambiare messaggi in una sessione affidabile.
Per configurare il client con una classe WSHttpBinding per utilizzare una sessione affidabile
- Questa procedura viene descritta in Procedura: scambiare messaggi in una sessione affidabile.
Per 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.
Aggiungere un elemento <security> e impostare l'attributo mode su Message.
Nell'esempio seguente, la modalità viene impostata su Message e quindi l'attributo clientCredentialType dell'elemento <message> viene impostato su Certificate.
<wsHttpBinding> <binding name="MessageSecurity"> <security mode="Message" /> <message clientCredentialType = " Certificate" /> </security> </binding> </wsHttpBinding >