Partager via


Comment : créer une session sécurisée

À l'exception de la liaison basicHttpBinding Element, les liaisons fournies par le système dans Windows Communication Foundation (WCF) utilisent automatiquement des sessions sécurisées lorsque la sécurité du message est activée.

Par défaut, les sessions sécurisées ne survivent pas à un serveur Web recyclé. Lorsqu'une session sécurisée est établie, le client et le service mettent en cache la clé associée à la session sécurisée. Lorsque les messages sont échangés, seul un identificateur de la clé mise en cache est échangé. Si le serveur Web est recyclé, le cache est également recyclé, de sorte que le serveur Web ne peut pas récupérer la clé mise en cache pour l'identificateur. Si cela arrive, une exception est retournée au client. Les sessions sécurisées qui utilisent un jeton de contexte de sécurité avec état peuvent survivre à un serveur Web qui est recyclé. Pour plus d'informations sur l'utilisation d'un jeton de contexte de sécurité avec état dans une session sécurisée, consultez Comment : créer un jeton de contexte de sécurité avec état pour une session sécurisée.

Pour spécifier qu'un service utilise des sessions sécurisées à l'aide de l'une des liaisons fournies par le système

  • Configurez un service pour utiliser une liaison fournie par le système qui prend en charge la sécurité de message.

    À l'exception de la liaison basicHttpBinding Element, lorsque les liaisons fournies par le système sont configurées pour utiliser la sécurité de message, WCF utilise automatiquement des sessions sécurisées. Le tableau suivant répertorie les liaisons fournies par le système qui prennent en charge la sécurité de message et indique si la sécurité de message est le mécanisme de sécurité par défaut.

    Liaison fournie par le système Élément de configuration Sécurité de message activée par défaut

    BasicHttpBinding

    basicHttpBinding Element

    Non

    WSHttpBinding

    wsHttpBinding Element

    Oui

    WSDualHttpBinding

    wsDualHttpBinding Element

    Oui

    WSFederationHttpBinding

    wsFederationHttpBinding element

    Oui

    NetTcpBinding

    netTcpBinding Element

    Non

    NetMsmqBinding

    netMsmqBinding Element

    Non

    L'exemple de code suivant utilise la configuration pour spécifier une liaison nommée wsHttpBinding_Calculator qui utilise wsHttpBinding Element, la sécurité de message et les sessions sécurisées.

    <bindings>
      <WSHttpBinding>
       <binding name = "wsHttpBinding_Calculator">
         <security mode="Message">
           <message clientCredentialType="Windows"/>
         </security>
        </binding>
      </WSHttpBinding>
    </bindings>
    

    L'exemple de code suivant spécifie que wsHttpBinding Element, la sécurité de message et les sessions sécurisées sont utilisés pour sécuriser le service secureCalculator.

    ms733783.note(fr-fr,VS.90).gifRemarque :
    Les sessions sécurisées peuvent être désactivées pour wsHttpBinding Element en affectant à l'attribut establishSecurityContext la valeur false. Pour les autres liaisons fournies par le système, les sessions sécurisées peuvent être désactivées uniquement en créant une liaison personnalisée.

Pour spécifier qu'un service utilise des sessions sécurisées à l'aide d'une liaison personnalisée

  • Créez une liaison personnalisée qui spécifie que les messages SOAP sont protégés par une session sécurisée.

    Pour plus d'informations sur la création d'une liaison personnalisée, consultez Comment : personnaliser une liaison fournie par le système.

    L'exemple de code suivant utilise la configuration pour spécifier une liaison personnalisée à laquelle les messages font appel dans une session sécurisée.

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

    L'exemple de code suivant crée une liaison personnalisée qui utilise le mode d'authentification MutualCertificate pour démarrer une session sécurisée.

Voir aussi

Concepts

Vue d'ensemble des liaisons Windows Communication Foundation