En un post anterior explico como configurar el HTTPs en los sitios de Sharepoint en este les explico el código de como consumirlo:
https://mteheran.wordpress.com/2014/01/05/configurando-https-en-sharepoint/
Primero debes instanciar estas reglas globales en nuestra clase donde estemos ejecutando cualquier servicio ya sea el List.asmx o el Copy.asmx:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;
Luego debemos crear nuestro punto de inicio y fin para el consumir el servicio
BasicHttpBinding binding = new BasicHttpBinding();
binding.MaxBufferSize = 99999999;
binding.MaxReceivedMessageSize = 99999999;
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.Security.Message.AlgorithmSuite = System.ServiceModel.Security.SecurityAlgorithmSuite.Default;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
Luego configuramos el punto final y realizamos la logica que necesitamos esta es igual para el servicio Lists.asmx para este caso muestro el ejemplo de como se usa con el Copy.asmx y realizo la opción de leer un archivo.
EndpointAddress endpoint = new EndpointAddress({Ursharepointl} + "/_vti_bin/Copy.asmx"));
using (CopySoapClient client = new CopySoapClient(binding, endpoint))
{
client.Endpoint.Address = new System.ServiceModel.EndpointAddress({Ursharepointl} + "/_vti_bin/Copy.asmx");
client.Endpoint.Contract.Name = "ws.App.SharePointDocuments.CopySoap";
client.Endpoint.Binding.Name = "basicHttpBinding";
client.Endpoint.Contract.ConfigurationName = "CopySoap";
NetworkCredential cred = new NetworkCredential(strUser, strPassWord);
client.ClientCredentials.Windows.ClientCredential = cred;
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
client.Open();
string destinationUrl = {RutaArchivo} + file;
byte[] bitFile;
FieldInformation[] outFields;
uint ret = client.GetItem(destinationUrl, out outFields, out bitFile);
fileinfo.Content = bitFile;
fileinfo.Errors = "";
fileinfo.P8_Url = destinationUrl;
client.Close();
}
Cualquier duda pueden dejarla en los comentarios.
Gracias por esto, la verdad que es bueno conseguir sitios web como este, ahora mismo iniciaré un proyecto que tiene mucho que ver.
Me gustaMe gusta