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