Connexion à un asmx webservice avec WCF à travers un proxy

Désolé réponse que l'on trouve en tapant

Je suis en train d'essayer de se connecter à un service web qui requiert le nom d'utilisateur/mot de passe de l'authentification via un proxy. Je suis à l'aide de Visual Studio Express 2008 à générer une référence de service

  • J'ai connecté à la même
    webservice à l'aide d'une référence web.Nous
    seulement dû mettre un plus grand délai d'attente
    parce qu'il faut beaucoup de temps pour
    finition.
  • Je l'ai connecté à un autre
    webservice qui ne nécessite pas de
    nom d'utilisateur/mot de passe d'authentification
    d'un service de référence
    et certains paramètres pour obtenir par le biais d'
    le proxy.

Donc, ma pensée serait de
prendre cette référence, point à la
corriger webservice et ajouter
l'authentification.

La config que je suis en utilisant sans sécurité:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.net>
        <defaultProxy useDefaultCredentials="true">
          <proxy bypassonlocal="False" proxyaddress="http://***.***.****:80" />
        </defaultProxy>
      </system.net>
        <system.serviceModel>
          <bindings>
            <customBinding>
              <binding name="AreaWebServiceSoap12">
                <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
                    messageVersion="Soap12" writeEncoding="utf-8">
                  <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                      maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                </textMessageEncoding>            
                <httpTransport manualAddressing="false" maxBufferPoolSize="524288"
                    maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
                    bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
                    realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
                    useDefaultWebProxy="true" />            
              </binding>
            </customBinding>
          </bindings>
          <client>
            <endpoint address="http://www.****.*****.****.com/samplewebservice/service.asmx"
                    binding="customBinding" bindingConfiguration="AreaWebServiceSoap12"
                    contract="ServiceReference1.ServiceSoap" name="ServiceSoap" />
            </client>
        </system.serviceModel>
    </configuration>

J'ai ajouté te code suivant à mon appel pour l'authentification:

static void Main(string[] args)
{
  ServiceSoapClient s = new ServiceSoapClient();
  s.ClientCredentials.UserName.UserName = @"username";
  s.ClientCredentials.UserName.Password = @"password";

  Service.RawGpsData[] result = s.GetRawGpsData(0);
  Console.WriteLine(String.Format("done:{0}",result.Length));
  Console.ReadLine();
}

Juste en utilisant cette configuration donne une erreur comme prévu:

La requête HTTP n'est pas autorisé avec le schéma d'authentification client Anonyme. L'en-tête d'authentification du serveur est reçu, est NTLM.

Maintenant je suis perdu et commencer à essayer des choses stupides parce que je suis juste de commencer à utiliser WCF.

Quand j'ai ajouter la section suivante pour la config

 <security authenticationMode="UserNameOverTransport"></security>

J'obtiens l'erreur suivante:

La liaison CustomBinding.http: //tempuri.org /pour le contrat AreaWebServiceSoap.AreaWebServices est configuré avec un mode de vérification pour lesquelles un niveau de transport avec intégrité et la confidentialité est nécessaire. Le transport ne peut pas garantir l'intégrité et la confidentialité.

Désolé, tout en tapant à cette question, je suis tombé sur la réponse moi-même. Je crois que les gens pourraient être intéressés par cette et tous les commentaires et les pensées sont toujours les bienvenus. Donc, je vais laisser la question ici et en faire de la communauté et de publier la réponse moi-même.

OriginalL'auteur |