3) vrai, wsHttpBinding et wsDualHttpBinding sont les seules liaisons HTTP qui prennent en charge les sessions
5) Faux, afin d'authentifier les appelants de services que vous ne doivent pas nécessairement avoir toute sécurité au niveau du transport (telle que SSL/HTTPS). La seule exigence est de configurer IIS pour activer l'authentification Windows intégrée pour un répertoire virtuel. Puis, en WCF vous avez trois possibilités pour permettre à ce scénario:
a) Utiliser la sécurité au niveau du transport sur le wsHttpBinding avec les informations d'identification de Windows (HTTPS)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="SecurityEnabledWsHttp">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
b) Utiliser la sécurité au niveau des messages sur le wsHttpBinding avec les informations d'identification de windows (HTTP)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="SecurityEnabledWsHttp">
<security mode="Message">
<message clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
c) Exécutez votre service sous le mode de compatibilité ASP.NET et activer l'authentification windows dans ASPIC.NET (HTTP)
<system.web>
<authentication mode="Windows" />
</system.web>
Notez que dans un et b vous accéder à l'identité de l'appelant à partir d'un service de cette façon:
OperationContext.Current.ServiceSecurityContext.WindowsIdentity
6) vrai, le transport la sécurité de niveau doit être activée sur le wsHttpBinding afin d'utiliser HTTPS
7) Faux, Sessions fiables est une implémentation particulière de Reliable Messaging pour les sessions WCF. Reliable Messaging est une spécification standard WS- * conçue pour garantir la livraison des messages sur un réseau non fiable. Vous pouvez utiliser des sessions WCF sans messagerie fiable et vice versa. Les sessions sont activées sur le contrat de service avec cet attribut:
[ServiceContract(SessionMode=SessionMode.Required)]
public interface IMyService {
// ...
}
Rappelez-vous aussi que pour maintenir l'état entre le service appels que vous avez explicitement pour activer le mode d'instance appropriée sur la mise en œuvre du contrat de service:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class MyService : IMyService {
// ...
}
Il existe deux types de sessions dans WCF: Sessions sécurisées et Sessions fiables. Le paramètre par défaut pour wsHttpBinding et netTcpBinding est d'utiliser Secure Sessions.
Pour wsHttpBinding, ceci est accompli avec sécurité au niveau du message en utilisant les informations d'identification du client, qui est le paramètre par défaut pour la liaison.
Pour netTcpBinding à la place, la session est établie au niveau de transport en utilisant les fonctionnalités du protocole TCP.
Cela signifie que le simple basculement vers wsHttpBinding ou netTcpBinding activera la prise en charge des sessions WCF.
L'alternative est d'utiliser Sessions fiables. Cela doit explicitement être activé dans la configuration de liaison, et supprime l'exigence d'utiliser la sécurité des messages pour le wsHttpBinding. Donc, cela fonctionnera:
<bindings>
<wshttpbinding>
<binding name="ReliableSessionEnabled">
<reliablesession enabled="True" ordered="False" />
<security mode="None" />
</binding>
</wshttpbinding>
</bindings>
8) Faux, sessions fiables sont utilisées indépendamment des paramètres de sécurité du canal de communication. Pour une explication plus détaillée, consultez this article.
Vous rencontrez des erreurs spécifiques avec cette configuration ou vérifiez-vous si cette configuration est réalisable? –
Je voudrais savoir si la configuration est possible: c'est-à-dire des sessions WCF avec HTTPS. Merci. –