miércoles, 28 de octubre de 2009

Error: No se puede establecer una relación de confianza para el canal seguro SSL/TLS

Hace unos dias, empezamos los trabajos de construccion para un proyecto en que estoy, basicamente, aplicaciones que se ejecutaran sobre un entorno HTTPS y tuvimos un problema al tratar de acceder a una lista del Sharepoint que se encuentra en ese Site que trabaja con certificados.
El Error que obteniamos era el siguiente

System.Net.WebException: Se ha terminado la conexión: No se puede establecer una relación de confianza para el canal seguro SSL/TLS. --->
System.Security.Authentication.AuthenticationException: El certificado remoto no es válido según el procedimiento de validación.

Este es el codigo que yo uso para acceder a una lista y sacar sus valores:

XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlElement viewFields = xmlDoc.CreateElement("ViewFields");
viewFields.InnerXml = "";
portal.Lists listService = null;
listService = new portal.Lists();
listService.Credentials = new System.Net.NetworkCredential("user", "password", "dominio");
listService.PreAuthenticate = true;
string listGuid = (string)"{AE348D4B-D88C-46B3-A809-B4663C4C7CB0}";
XmlNode itemCollection = listService.GetListItems(listGuid, string.Empty, null, viewFields, "0", null, string.Empty);
return itemCollection;


Para esto portal es un referencia Web al webservice del Sharepoint.
Algo como esto: https://MyServer/_vti_bin/lists.asmx


Bueno sin mas vueltas que dar, agreguemos esta linea

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
CredentialCache cache = new CredentialCache();



Este codigo se coloca antes de hacer una llamada a webservices.
Ademas debemos agregar es funcion, al agregar debemos agrregar algunos imports.

public static bool ValidateServerCertificate(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}



Espero que esto soluciona sus problemas.
Saludos

No hay comentarios:

Publicar un comentario