Y'a pas tout simplement une méthode "login" dans le service, qui te file ensuite un UID que tu dois refiler ensuite dans tous les appels de méthode ? (j'ai eu un fournisseur qui faisait ça).
Version imprimable
Y'a pas tout simplement une méthode "login" dans le service, qui te file ensuite un UID que tu dois refiler ensuite dans tous les appels de méthode ? (j'ai eu un fournisseur qui faisait ça).
Non, ça veut dire que le certificat du serveur n'est pas reconnu
J'ai un avertissement similaire dans le navigateur en entrant l'adresse du WSDL (voir un de mes messages plus haut)
Dans les détails, il dit :
en mettant fleetworks.punchtelematix.net comme domaine, pas de problème par contreCitation:
fleetworks.acunia.com utilise un certificat de sécurité invalide.
Le certificat n'est valide que pour fleetworks.punchtelematix.net.
(Code d'erreur : ssl_error_bad_cert_domain)
Oui donc pas vraiment contraignant !Citation:
en mettant fleetworks.punchtelematix.net comme domaine, pas de problème par contre
Si je comprends bien ils encadrent les requete pour un domaine un peu comme un namespace (ou je me trompe 8O)
Mais ca ne resoud pas pas le credential
Pour Guuhl
Non !Citation:
Y'a pas tout simplement une méthode "login" dans le service
Si tu veux en inspecter un :
Pour ma culture de Bambino en Webservice :oops:
Ca te le fais quand ?Citation:
Par contre j'ai l'impression que le certificat du serveur, ça me fait une erreur "Impossible d’établir une relation de confiance pour le canal sécurisé SSL/TLS avec l’autorité « fleetworks.acunia.com »."
Et ou definis tu le domaine ?
Citation:
C'est juste le certificat SSL qui correspond pas au domaine, mais on peut décider de l'accepter quand même
Effectivement c'est ce que j'avais fais !
Je croyais que tu recevais le message lors d'une autre opération
J'ai eu un peu d'explication de la part du fournisseur de service (qui a trouvé un interlocuteur francophone)
C'est du VB mais ca semble déja plus clair
En tout cas il faut vraissemblablement utiliser une classe NetworkCredential
Mais je n'ai pas encore bien compris l'usage du GetWebRequest
Voici ce qu'il me dit
Example 1 :Citation:
Example 1 : creation tache, tous ce qui concerne utilisateur et mot de passe est en rouge (le data n’est pas representable, il faut utiliser l’utilisateur et mot de passe fourni).
Example 2 : ce bloc de code doit etre mis dans toutes les class de services web (planning, message…), certainement si vous creera des taches et messages comme l’example 1
-----------------------------------------------------------------Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 Dim soapcl As PlanningServiceBeanService Dim networkCredential As New NetworkCredential("integrator@customer", "customerpassw") Dim tsk As New TaskData Dim act As New ActivityData Dim contact As New ContactData Dim address As New AddressData Dim telephonelist As New PhoneListData Dim coordinates As New CoordinateData Dim arrActdata(0) As ActivityData Dim arrTskdata(0) As TaskData Dim strTasks(0) As String Dim createtask As New createTasks soapcl = New PlanningServiceBeanService soapcl.Credentials = networkCredential act.id = "ATasknumber_000000001" act.description = "2 Palets, fragile !" act.type = "LD1" arrActdata(0) = act telephonelist.name1 = "Reception" telephonelist.phone1 = "+3256239401" telephonelist.name2 = "Warehouse" telephonelist.phone1 = "+3256239402" address.street = "Bootweg" address.number = "4" address.city = "Wervik" address.country = "BE" coordinates.latitude = 34.13782 coordinates.longitude = 51.13782 contact.name = "Punchtelematix" contact.address = address contact.phonelist = telephonelist contact.coordinate = coordinates tsk.id = "Tasknumber_000000001" tsk.description = "Timewindow : 10h00-12h00" tsk.name = "Laden@PUNCHTX (BE) tsk.contact = contact tsk.activity = arrActdata arrTskdata(0) = tsk createtask.customer = "Customerid" createtask.taskData() = arrTskdata soapcl.createTasks(createtask) MsgBox("Task succesfully created")
Example 2:
when using SoapHttpClientProtocol (generated classes based on wsdl)
override the SoapHttpClientProtocol webrequest function with:
Code:
1
2
3
4
5
6
7
8
9
10 Protected Overrides Function GetwebRequest(ByVal url As Uri) As System.Net.WebRequest '* Put this function into the main class of the service '* Leave the credential property into you main program, it will be re-used to make up the authorization in the right way. Dim request As HttpWebRequest = HttpWebRequest.Create(url) Dim encoding As New System.Text.ASCIIEncoding() Dim nwcredential As NetworkCredential = MyBase.Credentials request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(encoding.GetBytes(nwcredential.UserName & ":" & nwcredential.Password))) Return (request) End Function
Bonsoir Tomlev
Ou définis tu ce domaine ?Citation:
en mettant fleetworks.punchtelematix.net comme domaine, pas de problème par contre
Merci de ton aide
Toujours au même endroit, dans l'adresse du service dans "Add Service Reference"... Tu peux aussi changer l'adresse dans le fichier app.config
Ah oui :oops:
J'avais pas capté !
Bon mais ca ne fait malheureusement pas avancer le schmilblick
Le credential n'est toujours limpide et revival ! (comprenne qui pourra :mrgreen:)
Aah !Citation:
Oui, la référence est assez claire
ca fait du bien d'avoir des lettres dans le code ;)
Neanmoins j'ai toujours pas avancé sur ce bingz :traine: et j'ai le sentiment qu'il y a pas grand monde sur la place pour ce coup là
OK, je crois que j'ai compris... il ne faut pas faire une "service reference" mais une "web reference"... Je sais pas très bien quelle est la différence, mais google a l'air de savoir
http://www.google.fr/#&q=difference+...vice+reference
par défaut il crée un namespace en "inversant" le nom de domaine (un peu commes les packages java) : com.acunia.fleetworks
dedans tu as une classe PlanningServiceService (par exemple) qui a une propriété Credentials à laquelle tu peux affecter un NetworkCredentials avant d'appeler les méthodes du service
Merci Tomlev
Je pense que tu a fais avancer les choses d'un grand pas
Effectivement la classe générée par Add Web reference semble plus complete que le add service reference
ET je trouve enfin la proprieté Credential en read write
Si j'ai +/- compris le Add service reference permet de consommer des services spécialements écrits pour le FW 3.0
Donc un service generique traditionnel se fait torcher par le add service reference et le Add web reference par contre est bien caché dans les coulisse :(:furieux:
C'est un peu comme si MS voulait demolir un standard établi !
Si c'est ca c'est un peu dingue !
Je vais refaire un Post sur webservice car je pense qu'un echange sur ce coup la vaut la peine !
Salut Tomlev
Apparement cette distinction add service reference et add web reference a déja fait couler beaucoup d'encre et fait pleurer plus d'un :aie:
Je me demande toujours si in fine on ne peux pas utiliser le add service reference et amenager le code pour acceder aux methode comme il faut
C'est quand meme bizare que le wsdl soit completement digéré sans warning pour produire un code qui serait inutilisable !
Ya plus qu'a attendre le passage d'un guru :hola: :ave:
Yaka faucon ! :mrgreen:
Merci beaucoup pour tes investigations en tout cas :ccool:
Je ne suis pas un guru des WebService mais en lisant très rapidement vos exchanges, je n'ai pas trouvé de complexité donc pas de problème.
Heu, sauf l'authentification en mode Basic (avec https tout de même) qui n'est pas super secure.:aie:
Donc, pouvez-vous indiquer plus précisément le ou les problèmes ?
Bonjour Bacelar
Suite du sujet sur
http://www.developpez.net/forums/d82...p/#post4756229