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:

  1. Specificare che il client e il servizio si scambiano messaggi in una sessione affidabile.

  2. Richiedere la protezione a livello di messaggio all'interno della sessione affidabile.

  3. 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

  1. Aggiungere un elemento di associazione appropriato all'elemento <bindings> del file di configurazione. Nell'esempio seguente viene aggiunto un elemento <wsHttpBinding>.

  2. Aggiungere un elemento <binding> e impostare il relativo attributo name su un valore appropriato. Nell'esempio viene usato il nome MessageSecurity.

  3. Aggiungere un elemento <security> e quindi impostare l'attributo mode su Message.

  4. All'interno dell'elemento <security>, aggiungere un elemento <message> e impostare l'attributo clientCredentialType su Certificate.

<wsHttpBinding>
  <binding name="MessageSecurity">
    <security mode="Message">
      <message clientCredentialType="Certificate" />
    </security>
  </binding>
</wsHttpBinding>