Conectando-se a um Serviço da Web Asmx com WCF através de um Proxy

Desculpe resposta encontrada ao digitar

Estou tentando conectar-me a um serviço da web externo que requer autenticação de nome de usuário / senha por meio de um proxy. Estou usando o Visual Studio Express 2008 para gerar uma referência de serviço

Eu me conectei ao mesmo serviço da Web usando uma referência da Web. Só tivemos que definir um tempo limite maior porque leva muito tempo para concluir.Eu me conectei a outro serviço da web que não requer autenticação de nome de usuário / senha com uma referência de serviço gerada e algumas configurações para obtê-lo através do proxy.

Então, meu pensamento seria pegar essa referência, apontar para o serviço da web correto e adicionar autenticação.

A configuração que estou usando sem segurança:

    <?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>

Eu adicionei o seguinte código à minha chamada para autenticação:

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();
}

O simples uso dessa configuração gera um erro conforme o esperado:

A solicitação HTTP não está autorizada com o esquema de autenticação do cliente Anônimo. O cabeçalho de autenticação do servidor é recebido, é NTLM.

Agora me perco e começo a tentar coisas tolas, porque estou começando a usar o WCF.

Quando adiciono a seção a seguir à configuração

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

Estou tendo o erro a seguir:

A ligação CustomBinding.http: / / tempuri.org / para o contrato AreaWebServiceSoap.AreaWebServices é configurada com um modo de verificação para o qual é necessário um nível de transporte com integridade e confidencialidade. O transporte não pode fornecer integridade e confidencialidade.

Desculpe, ao digitar esta pergunta, me deparei com a resposta. Eu ainda acho que as pessoas podem estar interessadas nisso e todos os comentários e opiniões ainda são bem-vindos. Então, vou deixar a pergunta aqui e torná-la comunidade e postar a resposta.

questionAnswers(2)

yourAnswerToTheQuestion