Pergunta

Estamos desenvolvendo um aplicativo .NET 2.0 WinForm. O aplicativo precisa acessar Serviços web. No entanto, estamos encontrando problemas com os usuários por trás dos proxies.

Aplicativos populares de backup do Windows (pense Mozy) estão fornecendo uma janela de diálogo moderadamente complexa dedicada as configurações de proxy. No entanto, reimplementar a lógica de manuseio de proxy ainda assim e a GUI parece um total desperdício de tempo para mim.

Quais são as melhores maneiras de lidar com o proxy com os aplicativos do cliente .NET?

Mais especificamente, temos um caso em que o usuário gravou suas configurações de proxy no Internet Explorer (incluindo nome de usuário e senha), então o comportamento de proxy padrão de .NET deve funcionar. No entanto, o usuário ainda é solicitado por seu nome de usuário e senha ao iniciar o IE (os dois campos são pré -concluídos, o usuário só precisa clicar em OK) - e nosso aplicativo Winform ainda falha no manuseio do proxy.

O que devemos fazer para aplicar que o usuário não é solicitado por seu nome de usuário e senha ao lançar o IE?

Foi útil?

Solução

Coloque isso no arquivo de configuração do seu aplicativo:

<configuration>
  <system.net>
    <defaultProxy>
      <proxy autoDetect="true" />
    </defaultProxy>
  </system.net>
</configuration>

e seu aplicativo usará as configurações de proxy do IE. Se você puder ver seu serviço da Web no IE usando o servidor proxy, poderá "vê -lo" no seu aplicativo.

Outras dicas

Use aulas WebProxy e WebRequest. Envolva -o na sua própria biblioteca apenas por uma vez e use em todos os lugares que você deseja trabalhar com proxy.

Olhe para usar o .NET WebProxy classe. Possui suporte para selecionar automaticamente as configurações padrão corretas.

A maneira mais fácil é usar as configurações de proxy do IE Explorer.

Se você abrir o IE, clique em OK para a caixa de diálogo Proxy e, em seguida, (deixando o IE aberto) tente se conectar ao seu aplicativo Winforms, seu aplicativo então funciona? Ou seu aplicativo não lida com o proxy, não importa o quê?

Seus clientes estão enfrentando problemas de proxy na mesma rede (ou seja, todos eles estão usando o mesmo servidor proxy)?

Eu acho que o pergunta entende que ele precisa usar o WebProxy se o usuário exigir um proxy, a pergunta é "como faço para obter as configurações de proxy do IE, para que não precise pedir ao usuário para digitá -las no meu aplicativo também?"

System.net.webproxy.getDefaultProxy é obsoleto, você deve usar o System.net.webrequest.defaultwebproxy. Há um artigo descrevendo em http://msdn.microsoft.com/en-ca/magazine/cc300743.aspx.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top