Acceso desde .NET a SharePoint Online

  • Hola a todos,

     

    Hace unos días, recibí una consulta a través de mi blog, que me pedía ayuda con lo siguiente:

    "necesito acceder desde un programa de escritorio hecho en .Net al Sharepoint para añadir documentos a una librería. "

     

    Por aquello de aprovechar la respuesta por si sirve a más gente, pues la hago por aquí.

     

    Yo no lo he probado, pero la forma de acceder a SharePoint Online desde una app de escritorio en .NET, es a través de los servicios web de SharePoint. Ahora bien, cómo tenemos que usar la authentication basada en claims, la cosa se complica. Por suerte, MS ha publicado el siguiente artículo (con código fuente incluido), que explica cómo podemos acceder a los servicios web y autenticarnos:

     

    http://msdn.microsoft.com/en-us/library/hh147177.aspx

    http://blogs.msdn.com/b/sharepointdev/archive/2011/05/12/connecting-to-sharepoint-online-web-services.aspx

     

    Explicado mal y rápido, la forma para autenticarse, consiste en lanzar un webclient desde tu aplicación, y atacar la página de login de SharePoint, una vez el usuario pone usuario y contraseña, se crea una cookie en el cliente (una cookie como las que te puede dejar una página web en tu Internet explorer). Esa cookie, se "piratea" (a mí lo que hacen con el HTTPCookie me parece casi un pirateo :)) y se utiliza para enviarla en cada petición al servicio web, logrando así autenticarse.

     

    Espero que os sirva.

    Un saludo!!

  • Hola Luis,

    No te olvides de qué la recomendación para trabajar dee forma remota con SharePoint Online es usar el modelo de objetos en cliente.

    Un saludo

  • Hola JC,

    Gracias por el aporte.

    Hay por ahí algún ejemplo de cómo usar el modelo en clientes contra SharePoint Online para hacer lo que me preguntaban?

    Es verdad que de las últimas novedades de SharePoint Online no estoy muy al corriente, pero hace un tiempo intenté hacer un piloto de lo mismo que me han preguntado en el blog, y no conseguí gran cosa.

    Estamos hablando desde una app de consola .NET en cliente, no de un Silverlight o jQuery, que se ejecuta "dentro" de SharePoint online, y es más sencillo de autenticar.

    Saludos!!

  • Hola Luis,

    Claro, desde una aplicación en cliente en la que uses el modelo de objetos en cliente + un helper que te ayude con la parte de autenticación: msdn.microsoft.com/.../hh147177.aspx y code.msdn.microsoft.com/.../Remote-Authentication-in-b7b6f43c

    Un saludo

    JC

  • OK. genial!!

    Entonces estaba yo equivocado, porque el link que pasas es el mismo que he puesto yo, pero yo creía que ese ejemplo usaba los servicios web.

    Muuuchas gracias.