Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La sécurité de Windows Communication Foundation (WCF) comprend trois modes de sécurité courants qui se trouvent sur la plupart des liaisons prédéfinies : transport, message et « transport avec informations d’identification du message ». Deux modes supplémentaires sont spécifiques à deux liaisons : le mode « transport-credential only » trouvé sur le BasicHttpBinding, et le mode « Both », trouvé sur le NetMsmqBinding. Toutefois, cette rubrique se concentre sur les trois modes de sécurité courants : Transport, Messageet TransportWithMessageCredential.
Notez que toutes les liaisons prédéfinies ne prennent pas en charge tous ces modes. Cette rubrique définit le mode avec les WSHttpBinding classes et NetTcpBinding montre comment définir le mode par programmation et par le biais de la configuration.
Pour plus d’informations, consultez la sécurité WCF, consultez Vue d’ensemble de la sécurité, Sécurisation des services et clients. Pour plus d’informations sur le mode de transport et le message, consultez Sécurité du transport et sécurité des messages.
Pour définir le mode de sécurité dans le code
Créez une instance de la classe de liaison que vous utilisez. Pour obtenir la liste des liaisons prédéfinies, consultez Liaisons fournies par le système. Cet exemple crée une instance de la WSHttpBinding classe.
Définissez la
Modepropriété de l’objet retourné par laSecuritypropriété.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Transport;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.TransportSinon, réglez le mode sur message, comme dans le code suivant.
WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Message;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.MessageOu définissez le mode à transporter avec les informations d’identification du message, comme indiqué dans le code suivant.
WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.TransportWithMessageCredential;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.TransportWithMessageCredentialVous pouvez également définir le mode dans le constructeur de la liaison, comme indiqué dans le code suivant.
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);Dim b As New WSHttpBinding(SecurityMode.Message)
Définition de la propriété ClientCredentialType
La définition du mode sur l’une des trois valeurs détermine la façon dont vous définissez la ClientCredentialType propriété. Par exemple, à l’aide de la WSHttpBinding classe, définissez le mode sur Transport ce qui signifie que vous devez définir la ClientCredentialType propriété de la HttpTransportSecurity classe sur une valeur appropriée.
Pour définir la propriété ClientCredentialType pour le mode transport
Créez une instance de la liaison.
Définissez la propriété
ModesurTransport.Définissez la
ClientCredentialpropriété sur une valeur appropriée. Le code suivant définit la propriété surWindows.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Transport; b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.Transport b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows
Pour définir la propriété ClientCredentialType pour le mode Message
Créez une instance de la liaison.
Définissez la propriété
ModesurMessage.Définissez la
ClientCredentialpropriété sur une valeur appropriée. Le code suivant définit la propriété surCertificate.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Message; b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.Message b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate
Pour définir la propriété Mode et ClientCredentialType dans la configuration
Ajoutez un élément de liaison approprié à l’élément <liaisons> du fichier de configuration. L’exemple suivant ajoute un <élément wsHttpBinding> .
Ajoutez un
<binding>élément et définissez sonnameattribut sur une valeur appropriée.Ajoutez un
<security>élément et définissez l’attributmodesurMessage,TransportouTransportWithMessageCredential.Si le mode est défini sur
Transport, ajoutez un élément<transport>et définissez l’attributclientCredentialsur une valeur appropriée.L’exemple suivant définit le mode sur «
Transport", puis définit l’attributclientCredentialTypede l’élément<transport>sur «Windows".<wsHttpBinding> <binding name="TransportSecurity"> <security mode="Transport" > <transport clientCredentialType = "Windows" /> </security> </binding> </wsHttpBinding >Vous pouvez également définir la valeur
security modeà «Message", suivie d'un élément<"message">. Cet exemple définit leclientCredentialTypesur «Certificate"».<wsHttpBinding> <binding name="MessageSecurity"> <security mode="Message" > <message clientCredentialType = "Certificate" /> </security> </binding> </wsHttpBinding >L’utilisation de la TransportWithMessageCredential valeur est un cas particulier et est expliquée ci-dessous.
Utilisation de TransportWithMessageCredential
Lorsque vous définissez le mode de sécurité sur TransportWithMessageCredential, le transport détermine le mécanisme qui assure effectivement la sécurité au niveau du transport. Par exemple, le protocole HTTP utilise SSL (Secure Sockets Layer) sur HTTP (HTTPS). Par conséquent, la définition de la ClientCredentialType propriété d’un objet de sécurité de transport (par exemple HttpTransportSecurity) est ignorée. En d'autres termes, vous ne pouvez définir que l'objet de sécurité du message ClientCredentialType (pour la liaison WSHttpBinding, l'objet NonDualMessageSecurityOverHttp).
Pour plus d’informations, consultez Comment : Utiliser la sécurité de transport et les informations d'identification de message.
Voir également
- Guide pratique pour configurer un port avec un certificat SSL
- Guide pratique pour utiliser des informations d’identification de sécurité de transport et de message
- Sécurité du transport
- Sécurité des messages
- Présentation de la sécurité
- Liaisons fournies par le système
- <sécurité>
- <sécurité>
- <sécurité>