Procedura: proteggere i messaggi in sessioni affidabiliHow to: Secure Messages within Reliable Sessions

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.This topic outlines the steps required to enable message-level security for messages exchanged within a reliable session using one of the system-provided bindings that support such a session, but not by default. Abilitare una sessione protetta e affidabile in modo imperativo tramite codice o in modo dichiarativo nel file di configurazione.Enable a secure, reliable session either imperatively by using code or declaratively in the configuration file. In questa procedura vengono utilizzati i file di configurazione del client e del servizio per attivare la sessione affidabile protetta.This procedure uses the client and service configuration files to enable the secure, reliable session.

Questa procedura è costituita dalle tre attività chiave seguenti:This procedure consists of the following three key tasks:

  1. Specificare che il client e il servizio si scambiano messaggi in una sessione affidabile.Specify that the client and service exchange messages within a reliable session.

  2. Richiedere la protezione a livello di messaggio all'interno della sessione affidabile.Require message-level security within the reliable session.

  3. Specificare il tipo di credenziale client che il client deve utilizzare per essere autenticato con il servizio.Specify the client credential type that the client must use to be authenticated with the service.

È importante nell'attività prima che l'elemento di configurazione endpoint contenga un bindingConfiguration attributo che fa riferimento a una configurazione di associazione denominata (in questo esempio) MessageSecurity.It's important in the first task that the endpoint configuration element contain a bindingConfiguration attribute that references a binding configuration named (in this example) MessageSecurity. Il <associazione > elemento di configurazione fa quindi riferimento a questo nome per abilitare sessioni affidabili impostando il enabled attributo del <reliableSession > elemento true.The <binding> configuration element then references this name to enable reliable sessions by setting the enabled attribute of the <reliableSession> element to true. È possibile richiedere che le garanzie di recapito ordinato siano disponibili all'interno di una sessione affidabile impostando l'attributo ordered su true.You can require that the ordered delivery assurances are available within a reliable session by setting the ordered attribute to true.

Per la copia origine dell'esempio in cui è basato su questa procedura di configurazione, vedere il sessione affidabile WS.For the source copy of the example on which this configuration procedure is based, see the WS Reliable Session.

Gli elementi essenziali della seconda attività vengono eseguiti tramite l'impostazione di mode attributo del <sicurezza > elemento contenuto nel <associazione > elemento del client e servizio Message.The essential items of the second task are accomplished by setting the mode attribute of the <security> element contained in the <binding> element of the client and service to Message.

Gli elementi essenziali della terza attività vengono eseguiti tramite l'impostazione di clientCredentialType attributo del <messaggio > elemento contenuto nel <sicurezza > elemento del client e servizio Certificate.The essential items of the third task are accomplished by setting the clientCredentialType attribute of the <message> element contained in the <security> element of the client and service to Certificate.

Nota

Quando si utilizza la sicurezza dei messaggi con sessioni affidabili, messaggistica affidabile tenta di autenticare un client non autenticato fino a quando non si verifica un timeout anziché generare un'eccezione al primo errore.When using message security with reliable sessions, Reliable Messaging attempts to authenticate an unauthenticated client until a timeout occurs instead of throwing an exception upon first failure.

Configurare il servizio con una classe WSHttpBinding per utilizzare una sessione affidabileConfigure the service with a WSHttpBinding to use a reliable session

Questa procedura è descritta come: Exchange messaggi all'interno di una sessione affidabile.This procedure is described in How to: Exchange Messages Within a Reliable Session.

Configurare il client con una classe WSHttpBinding per utilizzare una sessione affidabileConfigure the client with a WSHttpBinding to use a reliable session

Questa procedura è descritta come: Exchange messaggi all'interno di una sessione affidabile.This procedure is described in How to: Exchange Messages Within a Reliable Session.

Impostare la modalità e la proprietà ClientCredentialType nella configurazioneSet the mode and ClientCredentialType in configuration

  1. Aggiungere un elemento di associazione appropriata di <associazioni > elemento del file di configurazione.Add an appropriate binding element to the <bindings> element of the configuration file. L'esempio seguente aggiunge un <wsHttpBinding > elemento.The following example adds a <wsHttpBinding> element.

  2. Aggiungere un <associazione > elemento e impostare il relativo name attributo su un valore appropriato.Add a <binding> element and set its name attribute to an appropriate value. Nell'esempio viene utilizzato il nome MessageSecurity.The example uses the name MessageSecurity.

  3. Aggiungere un <sicurezza > elemento e impostare il mode attributo Message.Add a <security> element and set the mode attribute to Message.

  4. All'interno di <sicurezza > elemento, aggiungere un <messaggio > elemento e impostare il clientCredentialType attributo Certificate.Within the <security> element, add a <message> element and set the clientCredentialType attribute to Certificate.

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