Tengo un problema al llamar a una solicitud de servicio web en C#.Pre autenticar solicitud de servicio web en C#
El servicio y la solicitud funcionan bien en la interfaz de usuario de Soap con la opción 'Authenticate Preemptively' habilitada (Archivo, Preferencias, Configuración de HTTP). Sin esta configuración habilitada, el servicio devuelve una 'Java.Lang.NullPointerException'.
El problema que tengo es que no sé cómo habilitar esta configuración en un contexto C#.
Tengo una biblioteca de clases .NET 3.5 que contiene una llamada referencia de servicio para el servicio específico. Este es un fragmento de código simple;
try
{
CatalogService.CatalogChangeClient service = new CatalogService.CatalogChangeClient();
service.ClientCredentials.UserName.UserName = "fancydress";
service.ClientCredentials.UserName.Password = "47fda9cb4b51a9e";
service.ClientCredentials.SupportInteractive = true;
ProductUpdate[] products = new ProductUpdate[1];
products[0] = new ProductUpdate();
products[0].ProductCode = "00001";
products[0].ProductDescription = "TestProduct";
string result = service.UpdateProducts(products);
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
Actualizar después de la primera respuesta.
La clase CatalogService.CatalogChangeClient parece implementar la clase abstracta WCF
System.ServiceModel.ClientBase<TChannel>
End Actualizar
Podría alguien ayudarme a esta propiedad?
favor muestran más código esp. la interfaz 'CatalogService.CatalogChangeClient' implementa – Yahia
Parece ser que la implementación de la clase System.ServiceModel.ClientBase de WCF: CatalogChangeClient clase parcial pública: System.ServiceModel.ClientBase, Fancydress. ResourceAccess.MCSF.CatalogService.CatalogChange –
Por lo que veo, este es un problema en la implementación .NET que envía la solicitud y solo cuando obtiene un 401 de los servicios reenvía con credenciales ... su servicio web Java no parece enviar 401 - aunque primero debe confirmar que realmente es el caso (es decir, WireShark) ... SI es el caso: para eludir esto, sospecho que tendrá que utilizar un cliente diferente (proxy) que puede ser "engañado" para enviar el credenciales siempre ... – Yahia