WSE Security - usernameToken : problème d'enveloppe SOAP

Fermé
romulus001 Messages postés 12 Date d'inscription dimanche 2 mars 2014 Statut Membre Dernière intervention 15 septembre 2017 - 3 mars 2014 à 10:06
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:

<?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-itcpgem-sqa/billService?wsdl

Et voici mon code VB:


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