Come connettersi a SharePoint 2013 OnLine con il Client-Script Object Model (CSOM)
Recentemente mi è capitato di fare una migrazione da SharePoint 2003 a SharePoint Online ed ho avuto la necessità di accedere a quest'ultimo tramite il Client-Script Object Model.
Il prerequisito necessario per connettersi da remoto è quello di avere sul proprio client lo SharePoint Server 2013 Client Components SDK che installa localmente le DLL di interfacciamento:
Successivamente, bisogna referenziare le DLL in Visual Studio e poi si può iniziare a scrivere il codice.
Un esempio di connessione a SharePoint 2013 OnLine è il seguente dove si vede l'utilizzo della classe SharePointOnlineCredentials per passare le credenziali di accesso:
potrebbe capitare di esse dietro un proxy, in questo caso al codice va aggiunto:
Se ho uno SharePoint On-premises per connettermi con la form autenticazione devo usare la classe FormsAuthenticationLoginInfo:
Il prerequisito necessario per connettersi da remoto è quello di avere sul proprio client lo SharePoint Server 2013 Client Components SDK che installa localmente le DLL di interfacciamento:
- Microsoft.Sharepoint.Client.dll
- Microsoft.Sharepoint.Client.Runtime.dll
- Microsoft.Sharepoint.Client.Publishing.dll
- Microsoft.Sharepoint.Client.Taxonomy.dll
- Microsoft.Sharepoint.Client.Userprofiles.dll
Successivamente, bisogna referenziare le DLL in Visual Studio e poi si può iniziare a scrivere il codice.
Un esempio di connessione a SharePoint 2013 OnLine è il seguente dove si vede l'utilizzo della classe SharePointOnlineCredentials per passare le credenziali di accesso:
C#
//http://www.sgart.it
//using Microsoft.SharePoint.Client;
//using Microsoft.SharePoint.Client.Utilities;
string url = "http://sgartit.sharepoint.com";
string user = "utente1";
string pwd = "utente1pwd";
using (ClientContext ctx = new ClientContext(url)) {
//preparo le credenziali per la connessione
System.Security.SecureString secpwd = new System.Security.SecureString();
for (int i = 0; i < pwd.Length; i++)
{
secpwd.AppendChar(pwd[i]);
}
SharePointOnlineCredentials creds = new SharePointOnlineCredentials(user, secpwd);
ctx.Credentials = creds;
//come esempio leggo le proprietà del web
Web web = ctx.Web;
//preparo la richiesta indicando quale oggetto e proprietà voglio leggere
ctx.Load(web, w => w.Features, w => w.Title, w => w.Url);
//eseguo la richiesta
ctx.ExecuteQuery();
//dopo la richiesta ho le proprietà valorizzate
Console.WriteLine(web.Title);
}
C#
string proxyAddress = "192.168.5.254:8080";
using(ClientContext ctx = new ClientContext(url)){
System.Net.WebProxy reqProxy = new System.Net.WebProxy(ProxyAddress, true);
//uso le credenziali dell'utente collegato al pc
reqProxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
System.Net.WebRequest.DefaultWebProxy = reqProxy;
...
}
Se ho uno SharePoint On-premises per connettermi con la form autenticazione devo usare la classe FormsAuthenticationLoginInfo:
C#
ClientAuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
FormsAuthenticationLoginInfo creds = new FormsAuthenticationLoginInfo(User, Password);