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 Non
Oui
Oui
Oui
Non
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
.Remarque : 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