2009-08-17 9 views
0

Est-il possible d'effectuer un appel de service Web à partir d'une feuille Excel qui a été téléchargée à partir d'un serveur SharePoint, en utilisant les mêmes informations d'identification que celles utilisées pour accéder au serveur Sharepoint?Comment appeler un service Web en utilisant les mêmes informations d'identification que Sharepoint?

Nous développons actuellement une solution Excel, qui demande des services Web à partir de la feuille Excel. Cela fonctionne bien, mais l'utilisateur doit se connecter au moins deux fois: un pour télécharger/ouvrir la feuille Excel à partir de Sharepoint, et un pour pouvoir exécuter le webservice en utilisant les bonnes informations d'identification.

Le serveur Sharepoint et l'ordinateur client ne se trouvent pas dans le même domaine Active Directory. Donc "System.Security.Principal.WindowsIdentity.GetCurrent()" n'est pas une option, car cela retournera un utilisateur qui n'existe pas sur le serveur.

Répondre

0

Vous pouvez utiliser VSTO (Visual Studio Tools pour Office) pour créer un plug-in Excel. Le plugin est chargé chaque fois que vous ouvrez l'Excel et peut contenir des boutons, etc.

Pour utiliser le compte système de Sharepoint, vous devez utiliser RunWithElevatedPrivileges. Cela a des implications de sécurité! http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

Normalement, les services Web prennent en compte les informations d'identification de l'utilisateur connecté. sinon vous pouvez toujours les créer manuellement en utilisant la classe NetworkCredential.

System.Net.CredentialCache myCredentials = new System.Net.CredentialCache(); 
NetworkCredential netCred = new NetworkCredential("UserName", "Password"); 
myCredentials.Add(new Uri(myService.Url), "Basic", netCred); 
myService.Credentials = myCredentials; 

// Acces vos méthodes webservice ici

Questions connexes