Je tente de créer un client minimal pour un service WCF, en utilisant WSHttpBinding avec SecurityMode: Message
via une interface de canal direct.Client minimal prenant en charge la sécurité au niveau des messages sur l'interface de canal
Mon code actuel est très simple:
EndpointIdentity i = EndpointIdentity.CreateX509CertificateIdentity(clientCertificate);
EndpointAddress a = new EndpointAddress(new Uri("http://myServerUrl"), i);
WSHttpBinding b= new WSHttpBinding(SecurityMode.Message);
ChannelFactory<IRequestChannel> channelFactory = new ChannelFactory<IRequestChannel>(b, a);
channelFactory.Open();
IRequestChannel channel = channelFactory.CreateChannel();
channel.Open();
Message response = channel.Request(requestMessage);
Le ClientCertificate se charge correctement. Cependant, par la suite, je ne sais pas si j'appelle chaque fonction correctement.
Le fait est: La dernière ligne de l'extrait de code jette un MessageSecurityException
avec le contenu
client ne peut pas déterminer le nom principal de service en fonction de l'identité dans l'adresse cible « http://myServerUrl » dans le but de SspiNegotiation/Kerberos. L'identité de l'adresse cible doit être une identité UPN (comme acmedomain \ alice) ou une identité SPN (comme host/bobs-machine).
Quelle pourrait être la raison de ce problème?