2010-06-30 8 views
0

J'ai été encouragé d'apprendre que le modèle d'objet client Sharepoint 2010 encapsule essentiellement les appels distants au serveur. Ainsi, j'ai copié le Microsoft.Sharepoint.Client.Silverlight.dll et le Microsoft.Sharepoint.Client.Silverlight.Runtime.dll de mon serveur Sharepoint 2010 à mon ordinateur de développement (sans Sharepoint). J'ai supposé que le code Silverlight que j'ai testé sur le serveur Sharepoint 2010 fonctionnerait également sur ma machine de développement. Naturellement, je ne pas utiliser le « ApplicationContext.Current.Url » parce que je ne suis pas exécuté dans Sharepoint, donc j'ajouter manuellement le nom du serveur de sharepoint comme suit (anonyme pour le arrêtais post):Sharepoint 2010 Modèle client d'objet Accès distant via HTTPS

 //ClientContext context = new ClientContext(ApplicationContext.Current.Url); 
     ClientContext context = new ClientContext("https://[servername]"); 
     _web = context.Web; 
     context.Load(_web); 
     context.Load(_web.Lists); 
     context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler (OnRequestSucceeded), new ClientRequestFailedEventHandler(OnRequestFailed)); 

Lorsque j'exécute le code, je suis invité par une fenêtre d'authentification Windows (SharePoint est configuré pour utiliser l'authentification Windows), j'ajoute mon domaine/utilisateur et mot de passe. Cependant, j'obtiens l'erreur suivante:

Remarque: J'ai réussi à faire fonctionner les services Web de Sharepoint 2010 avec une erreur similaire en modifiant la sécurité de liaison mode = "Transport" et en incluant un fichier clientAccessPolicy.xml sur la racine Sharepoint site Internet. Dois-je configurer un autre répertoire Sharepoint pour le point de terminaison Client Object Model?

  • Exception {System.Security.SecurityException ---> System.Security.SecurityException: erreur de sécurité. à System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) à System.Net.Browser.BrowserHttpWebRequest. <> c__DisplayClass5.b__4 (Object sendState) sur System.Net.Browser.AsyncHelper. <> c__DisplayClass2.b__0 (Object sendState) --- Fin de trace de pile d'exception interne --- à System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, l'état de l'objet) à System.Net.Browser.BrowserHttpWebRequest. EndGetResponse (IAsyncResult asyncResult) à Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryGetResponseAsyncCallback (IAsyncResult asyncResult)} {System.Exception System.Security.SecurityException}

Répondre

0

Aha, je l'ai trouvé. Vous pouvez définir la sécurité sur le contexte client d'utiliser les fenêtres par défaut l'authentification comme ceci:

using (Microsoft.Sharepoint.Client.ClientContext ctx = new Microsoft.Sharepoint.Client.ClientContext("http://sharepointserver")){ 

ctx.AuthenticationMode = Microsoft.Sharepoint.Client.ClientAuthenticationMode.Default 

} 

Cela devrait également empêcher toute authentification Windows pop-ups

Questions connexes