Uso de Sharepoint 2007 Web Services

En multitud de ocaciones a aquellos desarrolladores y administradores de Sharepoint se nos plantea una pregunta… cómo podríamos integrar una aplicación web en mi nuevo mega portal Sharepoint 2007…


 


Bueno, pues una posible y simple respuesta, es la de insertar en nuestro portal un webPart visor de páginas web, el cual apunte hacia la dirección en la que se aloja dicha aplicación..


 


Pero si somos un poco más rebuscados, ahora nos podríamos preguntar… cómo podríamos hacer que esa relación Portal-AppWeb fuera algo más que una simple ventana en la que se asoma la información de un sitio… cómo podríamos compartir información entre los dos sistemas..


 


Bien, pues aquí viene la cuestión del articulo.. podremos establecer una colaboración PORTAL – appWeb más dependiente, a través de los web Services que nos aporta Sharepoint 2007, de los cuales podemos obtener más infomación aquí


Para utilizar los Web Services de Sharepoint 2007 basta con acceder a http://NuestroSitio/_vti_bin/ServicioWeb.asmx y para ver como funcionan, os pondré un simple ejemplillo en el que intentaremos que mi appWeb consiga la información registrada en el Portal del usuario que la está ejecutando, información tal, como si es o no Admin del site, login, nombre, email, etc.. bien manos a la masa:


1º Creando mi Aplicación Web


Una vez creada la aplicación web, lo primero que tendremos que hacer es añadir una referencia web hacia nuestro web service, como os comentaba anteriormente hacia http://NuestroSItio/_vti_bin/ServicioWeb.asmx, en nuestro ejemplo, apuntaremos hacia UserGroup.asmx, el cual nos dará acceso para trabajar con los usuarios, roles, grupos, etc…



 


2º A picarrr:


Bien, ya tenemos nuestra referencia web, pues ahora a picar toca:


         //Primero instanciaremos nuestra referencia para poder trabajarla


        refUserGroup.UserGroup spUser = new refUserGroup.UserGroup();


       


       //Destacar que la información que deseamos, vendrá en formato xml, por lo que será necesario declararnos objeto de tipo XmlNode


 


        System.Xml.XmlNode userInfo;


       


       //Otro aspecto imprescindible es el de pasarle las Credenciales al objeto que ha instanciado al webService, sin ellas, no nos permetiría el acceso a la información del portal


 


        spUser.Credentials = System.Net.CredentialCache.DefaultCredentials;


 


        //A continuación, Le mandamos el chorro xml de información a nuestro objeto XmlNode utilizando el método GetUserInfo, el cual te devuelve información del usuario que le pasamos como argumento, en nuestro caso, como comentábamos en el enunciado del ejemplo el Usuario, que está ejecutando la aplicación:


 


        userInfo = spUser.GetUserInfo(this.Context.User.Identity.Name);


       


       //Y ahora simplemente mostraremos esta información por pantalla en una label recorriendo los distintos atributos y valores de nuestro XmlNode:


 


        for (int i = 0; i < userInfo.ChildNodes.Item(0).Attributes.Count; i++)


        {


            Label1.Text += «<br><b>» + userInfo.ChildNodes.Item(0).Attributes.Item(i).Name + «</b> : « + userInfo.ChildNodes.Item(0).Attributes.Item(i).Value;


        }


 


3º Conclusión


Bien pues como podremos apreciar tenemos la visualización de los datos registrados en el portal del usuario que está ejecutando esa aplicación web independiente….




 Ni que decir tiene, que este simple ejemplo nos sirve solo de base para saber como interactuar con estos Web Services, hemos visto q de manera sencilla, podremos hacer que nuestras aplicaciones web dependan del portal en Sharepoint 2007 o viceversa teniendo multitud de recursos a utilizar 


4º Nota


Es importante recordar, que para que nuestra aplicación pueda obtener los atributos de conexión tales como el usuario autenticado, deberíamos en principio, deshabilitar el acceso anónimo del directorio en el que colgamos la aplicación web.


 

2 thoughts on “Uso de Sharepoint 2007 Web Services

  1. Me parece muy util pero tengo el problema de que mi aplicacion necesita primero hacer un login del usuario correspondiente, ya que me direcciona a la pagina de login. Tal vez puedan ayudarme. hasta el momento este ejemplo me ha servido localmente.
    Gracias y sigan con articulos asi estan muy bien.

Leave a Reply to anonymous Cancel reply

Your email address will not be published. Required fields are marked *