ADJ Design | Bon un petit pas en avant. J'ai continué mon exploration sur le web pour consulter les travaux de nos amis anglophones. J'arrive à récupérer des éléments créés. Ici je vous donne le code pour récupérer : Les sites crés, Les listes de collections.
Première étape, les Web Services.
Dans Visual Studio, Click droit sur Reference, Add WebRéférence, et entrer l'addresse du site réalisé avec sharepoint : http://monsite:monport/
Tous les webservices ainsi que les méthodes seront "importés" dans l'application.
Notez bien le nom de la référence web, c'est très important, et remplacez dans mon code 'nomReferenceWeb' par le nom de votre référence web !!
Ensuite le code, dsl il est très mal commenté, mais il est simple en même tps ^^ - 1 Méthode pour récupérer les sites créés et leur url
- 1 Méthode pour récupérer les collections de liste
- 1 Méthode pour exporter le Node créé en un fichier XML.
- Et un main !!
Code :
- using System;
- using Microsoft.SharePoint.Dsp;
- using Microsoft.SharePoint.Library;
- using Microsoft.SharePoint.Security;
- using Microsoft.SharePoint.WebControls;
- using Microsoft.SharePoint;
- using SharePointServices;
- using System.Web;
- using System.Xml;
- using System.Net;
- namespace RécupérationContenu
- {
- class ClassTest
- {
- private static XmlNode ListCollection(string url, string UserName, string Password, string Domain)
- {
- string currentSite = url;
- string suffix = @"/_vti_bin/Lists.asmx";
- XmlNode n = null;
- try
- {
- nomReferenceWeb.ListsSoap l = new nomReferenceWeb.ListsSoap();
- l.PreAuthenticate = true;
- l.Credentials = new System.Net.NetworkCredential(UserName, Password, Domain);
- l.Url = url + suffix;
- n = l.GetListCollection();
- }
- catch (Exception)
- {
- Console.WriteLine("Erreur d'identification" );
- }
- return n;
- }
- private static XmlNode WebCollection(string url, string UserName, string Password, string Domain)
- {
- string currentSite = url;
- string suffix = @"/_vti_bin/webs.asmx";
- XmlNode n = null;
- try
- {
- nomReferenceWeb.WebsSoap w = new nomReferenceWeb.WebsSoap();
- w.PreAuthenticate = true;
- w.Credentials = new System.Net.NetworkCredential(UserName, Password, Domain);
- w.Url = url + suffix;
- n = w.GetWebCollection();
- }
- catch (Exception)
- {
- Console.WriteLine("Erreur d'identification" );
- }
- return n;
- }
- private static void nodeToFile(XmlNode n)
- {
- XmlDocument document = new XmlDocument();
- document.LoadXml("<XML></XML>" );
-
- XmlNode newElem;
- newElem = document.ImportNode(n, true);
-
- XmlElement root = document.DocumentElement;
- root.AppendChild(newElem);
-
- XmlTextWriter fileOut = new XmlTextWriter("d:/test.xml", System.Text.Encoding.UTF8);
- fileOut.Formatting = Formatting.Indented;
- document.WriteTo(fileOut);
- fileOut.Flush();
- fileOut.Close();
- }
- static void Main(string[] args)
- {
- Console.WriteLine("Affichage des résultats" );
- XmlNode XN;
- XN = WebCollection("http://monsite:monport/", "monLogin", "monPWD", "nomDomaine" );
- foreach (System.Xml.XmlNode sn in XN.ChildNodes)
- {
- Console.WriteLine(sn.Attributes["Title"].Value + " - " + sn.Attributes["Url"].Value);
- }
- XN = ListCollection("http://monsite:monport/", "monLogin", "monPWD", "nomDomaine" );
- nodeToFile(XN);
- Console.WriteLine("Terminé" );
- Console.ReadLine();
- }
- }
- }
|
Il n'y a aucune révolution dans ce code, cependant, cela peut permettre à certains de comprendre comment réaliser une interraction entre c# et Sharepoint. Il suffit maintenant de parcourir la MSDN en recherchant le nom des webservices, comme cela vous pouvez récupérer le contenu souhaité, ou encore réaliser de opérations de maintenance.
Des liens qui m'ont aidé pour les webservices (j'espère que cela ne sera pas censuré, mon but n'est pas de faire de la pub pour quiconque, mais de documenter ma recherche)
Liste des webservices : http://www.c-sharpcorner.com/Code/ [...] ointWS.asp
Pratique pour vérifier graphiquement login, mdp, domaine, ... : http://blogs.leadit.be/files/sharepointexplorer.zip
Mon but est maintenant de créer des groupes utilisateurs avec sharepoint, de créer des articles pour ces groupes et de les récupérer au format XML. J'espère ne pas avoir trop de problème... On verra !! Message édité par ADJ Design le 23-05-2006 à 15:01:22
|