Bonjour, j'utilise un web service afin d'envoyer un fichier, juste avant, je dois m'identifier à l'aide du WSE Security usernameToken, le problème que j'ai, c'est que " l'entête de sécurité est incorrecte", d'après ce que j'ai compris, mon soucis vient du fait que mon fichier app.config n'est pas formaté comme il le devrait, le mien se présente ainsi:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?xml version="1.0"?>
<configuration>
    <configSections>
    </configSections>
    <system.diagnostics>
        <sources>
            <!-- Cette section définit la configuration de l'enregistrement dans le fichier journal de My.Application.Log -->
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                    <!-- Supprimez les marques de commentaire dans la section suivante pour écrire dans le journal des événements de l'application -->
                    <!--<add name="EventLog"/>-->
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information"/>
        </switches>
        <sharedListeners>
            <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
            <!-- Supprimez les marques de commentaire dans la section suivante et remplacez APPLICATION_NAME par le nom de votre application à écrire dans le journal des événements de l'application -->
            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
    </system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BillServicePortBinding" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="Transport">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
 
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://www.sunat.gob.pe:443/ol-ti-itcpgem/billService"
                binding="basicHttpBinding" bindingConfiguration="BillServicePortBinding"
                contract="Production.billService" name="BillServicePort" />
                    </client>
    </system.serviceModel>
</configuration>
2 services sont mis en place, je me sers du 1er uniquement, voici les liens ainsi que les descriptions:

Pour l'envoi en production : https://www.sunat.gob.pe/ol-ti-itcpgem/billService?wsdl
Pour l'envoi par homologation : https://www.sunat.gob.pe/ol-ti-itcpg...llService?wsdl

Et voici mon code VB:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Dim file As String = "MonFichierAEnvoyer.zip"
 
Dim userName As String = "IdIdentification"
Dim pwd As String = "PWDIdentification"
Dim local_filereceived As String = "R-" & file
Dim zip As New ICSharpCode.SharpZipLib.Zip.FastZip
 
System.Net.ServicePointManager.UseNagleAlgorithm = True
System.Net.ServicePointManager.Expect100Continue = False
System.Net.ServicePointManager.CheckCertificateRevocationList = True
 
Try
     Dim data As Byte() = System.IO.File.ReadAllBytes(file)
     Dim ws As New Production.billServiceClient
 
     Dim Retour As Byte()
     ws.ClientCredentials.CreateSecurityTokenManager()
     ws.ClientCredentials.UserName.UserName = userName
     ws.ClientCredentials.UserName.Password = pwd
     ws.Open()
 
     'envoi du fichier ZIP à la SUNAT
     Retour = ws.sendBill(local_filereceived, data)
 
     'la réponse
     System.IO.File.WriteAllBytes(local_filereceived, Retour)
 
     'décompresser
     zip.ExtractZip(local_filereceived, ".", "")
 
     'supprimer les fichiers ZIP ainsi eus
     System.IO.File.Delete(local_filereceived)
     System.IO.File.Delete(local_filereceived)
Catch ex As Exception
     MsgBox(ex.Message)
 End Try
Merci