Olá Developers,
Recentemente atendendo um cliente nos deparamos com uma situação diferente do tradicional porem muito comum para alguns desenvolvedores.
Nosso cliente utiliza o Visual Studio para o Desenvolvimento e testes da integração do WebService dentro de suas aplicações, até ai tudo bem, o usuário consegue utilizar Breakpoints, Step-By-Step e Watch´s.
O problema começa quando existe um servidor de Desenvolvimento utilizando IIS 6.x ou 7.x dentro da intranet da empresa e esse IIS esta atras de um ISA Server (Proxy/Firewall Server).
Quando feito o Deploy da solucao neste servidor a aplicação normalmente nao consegue ganhar acesso ao lado de fora da rede para invokar nosso webservice, isso da-se ao fato do sistema utilizar um usuário interno para tentar ganhar acesso e por sua vez esse usuário nao tem acesso.
Para solucionar este problema utilizamos a técnica de "Impersonate" que quer dizer "assumir identidade" de outro usuário para realizar a comunicação.
Primeiro Passo em seu código de chamada:
cr = New System.Net.NetworkCredential(Session("UsuarioAD"), Session("SenhaAD"), Session("DominioAD"))
pr = System.Net.WebProxy.GetDefaultProxy()
pr.Credentials = cr
ows.Proxy = pr
oResultado = ows.ConsultaSinteseCadastralSERASA(Email, Senha, Me.txCgcCpf.Text)
Segundo Passo (Web.Config):
<authentication mode="Windows"/>
<identity impersonate="true"/>
Gostaria de agradecer ao nosso cliente Marco Antonio dos Santos Junior da Sispro Serviços e Tecnologia para Administração e Finanças pela colaboração.