Olá Pessoal,
Estou com um problema que vem se arrastando por 5 dias, Estamos tentando estabelecer uma integração com um cliente da empresa que utiliza Certificado SSL.
Criamos uma pequena aplicação apenas para testar o consumo do serviço configurando o Certificado Digital na aplicação e o usuário e senha mas não funciona e sempre apresenta a msg
"The HTTP request was forbidden with client authentication scheme 'Anonymous'.".
O que é curioso nesse caso é que utilizando o SOAPUI e o consumo funciona perfeitamente.
Já consultei diversas documentações, escrevo o código exatamente como é exemplificado mais não funciona.
Abaixo o código do meu Form
private void button1_Click(object sender, EventArgs e)
{
ControlFileHeader fielder = new ControlFileHeader();
fielder.FileSenderNumber = "80025639";
fielder.FileIdentifier = "INVENTORY";
fielder.FileDate = "2016-08-09";
fielder.FileTime = "06:30:42Z";
MDXInventoryMessage mdxInventario = new MDXInventoryMessage();
mdxInventario.ControlFileHeader = fielder;
#region MasterItem
InventoryMasterItem inventario1 = new InventoryMasterItem();
inventario1.ProductBatch = "SER001";
inventario1.GEType = "E";
inventario1.EanGtin = "1010006570014";
inventario1.EfectiveDate = "2016-08-08";
inventario1.Branch = "Osasco";
inventario1.InventoryAvailable = "400";
inventario1.InventoryUnavailable = "31";
inventario1.OnOrder = "23";
inventario1.UnitMeasure = "EA";
inventario1.Country = "BR";
InventoryMasterItem inventario2 = new InventoryMasterItem();
inventario2.ProductBatch = "SER099";
inventario2.GEType = "E";
inventario2.EanGtin = "1010006570019";
inventario2.EfectiveDate = "2016-08-08";
inventario2.Branch = "Sao Paulo";
inventario2.InventoryAvailable = "600";
inventario2.InventoryUnavailable = "29";
inventario2.OnOrder = "23";
inventario2.UnitMeasure = "EA";
inventario2.Country = "BR";
#endregion
List<InventoryMasterItem> listaInventory = new List<InventoryMasterItem>();
listaInventory.Add(inventario1);
listaInventory.Add(inventario2);
mdxInventario.MessageBody = listaInventory.ToArray();
string certPath = @"C:\XXXXX\XXXXX\XXXXXX.pfx";
string certPass = "XXXXXX11";
DataExchangeDistribution_WS_PortTypeClient cliente = new DataExchangeDistribution_WS_PortTypeClient();
cliente.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(certPath, certPass);
cliente.ClientCredentials.UserName.UserName = "XXXXXX";
cliente.ClientCredentials.UserName.Password = "XXXXXXX";
// Nesse ponto Recebemos a MSG: "The HTTP request was forbidden with client authentication scheme 'Anonymous'."
string retorno = cliente.createInventory(mdxInventario);
MessageBox.Show(retorno);
}
Alguém por gentileza pode dar uma olhada e me falar o que esta faltando.
Já não tenho mais aonde pesquisar sobre isso.
Danilo FS