none
obtener items por medio del webService de SharePoint RRS feed

  • Pregunta

  • Hola a todos, agradecería su ayuda ya que requiero obtener los items de mi lista por medio del webService de SharePoint sin embargo tengo el problema de acceso ya que para ver los items de mi lista me pide estar autenticado ya que genera error de acceso denegado; sin embargo hay que tener en cuenta que la lista va a ser consultado por gente que no es usuario de sharePoint, yo solo necesito consumir el servicio getListItems de sharePoint para poder mosrar los datos de mi lista en una tabla html en mi formulario .aspx; esto no va a hacer agregado a mi sitio en sharePoint por medio de webPart ni desde otra forma, ya que para mostrar estos items solo tengo mi sitio web desarrollado en asp.net.

    Tengo

    <title>Test</title>
    	<script language="javascript" type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
    	<script language="javascript" type="text/javascript" src="Scripts/jqSOAPClient.js"></script>
    	<script language="javascript" type="text/javascript">
    	    var xmlstr;
    	    $(document).ready(function () {
    	        $("#clickme").click(function () {
    	            var batch =
                       "<Batch OnError=\"Continue\">" +
                       "    <Method ID=\"1\" Cmd=\"Update\">" +
                           "       <Field Name=\"ID\">1</Field>" +
                       "       <Field Name=\"Title\">item 1</Field>" +
    
                       "    </Method>" +
                       "</Batch>";
    
    	            var wsMethod = "GetListItems";
    	            var soapNs = "http://schemas.microsoft.com/sharepoint/soap/";
    
    	            var soapBody = new SOAPObject(wsMethod);
    	            soapBody.ns = soapNs;
    	            soapBody.appendChild(new SOAPObject("listName")).val("Noticias");
    	            var sr = new SOAPRequest(soapNs + wsMethod, soapBody);
    	            SOAPClient.Proxy = "http://yendaro-pc:85/_vti_bin/Lists.asmx";
    	            SOAPClient.SendRequest(sr, processResponse);
    	            return false;
    	        });
    	    });
    	    function processResponse(respObj) {
    	        $("#msg").text(respObj.xml);
    	        xmlstr = respObj.xml;
    	    }	  
    	</script>

    No se como enviarle unas credenciales para que pueda hacer la consulta a los items de mi lista.

    Gracias


    sandra

    sábado, 8 de septiembre de 2012 3:38

Todas las respuestas

  • Hola,

    ¿Dónde tienes incrustrado el código JavaScript? Si no recuerdo mal, para poder llamar servicios desde código JS como el que pones, tienes que llamar a servicios RESTFull, y estás llamando a un servicio SOAP de SharePoint.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    sábado, 8 de septiembre de 2012 8:49
  • hay alguna forma de en lugar de no enviar las credenciales me aceptara hacer la consulta a la lista por medio del webservice sin necesidad de autenticarme?; ya que la idea es consular la lista desde un formulario aspx ya que este no va a ir como webPart porque lo voy a colocar en mi sitio que no está en sharePoint.

    La lista en permisos le modifiqué que usuarios no autenticados pudiera leerla o la otra sería de alguna forma dejar las credenciales quemadas pero no se como hacerlo.

    Gracias


    sandra



    domingo, 9 de septiembre de 2012 3:01
  • Hola,

    Para que  no te pida autenticarte, tendrías que habilitar acceso anónimo a los sitios.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    domingo, 9 de septiembre de 2012 9:11
  • Hola, gracias por tu respuesta, ya estoy obteniendo los datos en mi tabla html y ya cambié el codigo a algo más sencillo:

    y funciona pero mi duda es puedo consultar el webService con autenticación anónima? ya que como verán en la url estoy haciendo la consulta de forma directa; de igual forma como lo hacía primero "el código está enla parte superior" también debería consultar el webService de forma anónima.

    $(document).ready(function () {
    	        $("#clickme").click(function () {
    	            $.ajax({
    	                type: "GET",
    	                url: "http://servidor/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=true&List=%7B151766D2%2D3CBD%2D442B%2DA379%2D484FEFFC69D6%7D",
    	                dataType: "xml",
    	                success: function (xml) {
    	                    $(xml).find('z\\:row').each(function () {
    	                        var uSplit = $(this).attr('ows_LinkTitle');
    	                        var Col0 = $(this).attr('ows_LinkTitle');
    	                        var Col1 = $(this).attr('ows_Descripci_x00f3_n');
    	                        var Col2 = $(this).attr('ows_Detalle');  
    	                        $('<tr></tr>').html('<td><th>' + Col0 + '</th></td><td>' + Col1 + '</td><td>' + Col2 + '</td>').appendTo('#chart');
    	                    });
    	                }
    	            });
    	        });
    	    });

    Gracias.

    sandra

    lunes, 10 de septiembre de 2012 16:53
  • Hola, de forma anónima no es posible consultarlo, lo que tienes que hacer es impersonar la llamada al servicio o pasarle credenciales. SharePoint siempre necesita saber que usuario esta accediendo a la información (aunque le des permisos a Domain Users).


    Oscar Martin Garcia | Blog: http://oscarmartin.org | Twitter: http://twitter.com/omartin1978

    miércoles, 12 de septiembre de 2012 7:24