2017-06-07 1 views
0

J'essaie de me connecter à un Sharepoint en utilisant ClientContext (Microsoft.SharePoint.Client lib).Sharepoint ClientContext renvoie toujours le code 401 lorsque j'essaie de me connecter

Malheureusement, lorsque j'exécute le code supposé se connecter sur Sharepoint Site, j'obtiens une erreur 401. Lorsque j'essaie de me connecter à l'aide d'un navigateur Web, cela fonctionne correctement.

vient ici mon code:

 using (ClientContext clientcontext = new ClientContext("http://mysite/")) 
     { 
      var credentials = new NetworkCredential(user, password, domain); 

      clientcontext.Credentials = credentials; 

      Web web = clientcontext.Web; 
      clientcontext.Load(web); 

      clientcontext.ExecuteQuery(); 
     } 

Merci!

Répondre

0

Utilisez "Microsoft.SharePoint.Client.dll" et "Microsoft.SharePoint.Client.Runtime.dll".

using (ClientContext clientcontext = new ClientContext("http://mysite/")) 
    { 
     var credentials = new NetworkCredential(domain\UserName, password); 
     clientcontext.Credentials = credentials; 
     Web web = clientcontext.Web; 
     clientcontext.Load(web); 
     clientcontext.ExecuteQuery(); 
    } 
+0

Je l'utilise déjà et j'ai aussi essayé de mettre "domain \ UserName". Les deux points ne fonctionnent pas non plus. –

0

Salut désolé pour le retard.

S'il vous plaît voir mon code de travail ci-dessous. Si vous utilisez SharePoint en ligne, utilisez le code ci-dessous

public static ClientContext GetClientContext(string url) 
    { 

     SecureString securePassword = new SecureString(); 
     ClientContext context = null; 
     try 
     { 
      using (context = new ClientContext(url)) 
      { 
       foreach (char c in "Password") securePassword.AppendChar(c); 
       context.Credentials = new SharePointOnlineCredentials("u[email protected]", securePassword); 
       context.Load(context.Web, w => w.ServerRelativeUrl, w => w.Url); 
       context.ExecuteQuery(); 


      } 
     } 
     catch (Exception ex) 
     { 

     } 

     return context; 
    } 

Si vous utilisez SharePoint sur le serveur de locaux, vous pouvez obtenir le contexte de deux façons. Utilisation du compte du pool d'applications ou en passant vos identifiants utilisateur. Sous le code en utilisant les informations d'identification du pool d'applications par défaut.

string parentSiteUrl = Helper.GetParentWebUrl(siteUrl); 
        clientContext = new ClientContext(parentSiteUrl); 
        clientContext.Credentials = CredentialCache.DefaultCredentials; 
        clientContext.Load(clientContext.Web, w => w.Url, w => w.Lists, w => w.ServerRelativeUrl, w => w.Title, w => w.SiteGroups);       
        clientContext.ExecuteQuery(); 

Ou vous pouvez transmettre vos informations d'identification comme ci-dessous.

var clientContext = new ClientContext(siteUrl); 
     clientContext.Credentials = new NetworkCredential("domain\\user", "password"); 
     clientContext.Load(clientContext.Web, w => w.Lists); 
     clientContext.ExecuteQuery(); 

Faites-moi savoir si vous avez des questions.

+0

Thx @Naveen Prasath. Mais, je suis toujours avec le même problème. Je pense que le problème est avec l'installation de Sharepoint sur le serveur. Je vais vérifier avec l'équipe qui s'occupe de ce serveur, et si oui, je vous ferai connaître la solution. –