2016-06-03 2 views
0

Je travaille sur une tâche de script SSIS qui télécharge un fichier sur un site SharePoint et applique une autorisation au niveau de l'élément au fichier. J'utilise un compte Windows pour établir une connexion avec la bibliothèque SharePoint comme ci-dessous.Télécharger un fichier vers SharePoint à l'aide du modèle objet client - 401 non autorisé

using (ClientContext ctx = new ClientContext("http://server")) 
{ 
    ctx.Credentials = new NetworkCredential("username", "password", "domain"); 
    //ctx.Credentials = CredentialCache.DefaultCredentials; 

    Web currentWeb = ctx.Web; 

    ctx.Load(currentWeb); 

    ctx.ExecuteQuery(); 

    using (FileStream fs = new FileStream(@"filepath", FileMode.Open)) 
    { 
     Microsoft.SharePoint.Client.File.SaveBinaryDirect(ctx, "site path to save", fs, true); 
    } 
} 

Le compte a des droits d'administrateur sur le site SharePoint, il fait une connexion parfaitement et le fichier est téléchargé sans aucun problème. Maintenant, il y a un autre compte, appelons le compte B, qui a un accès administrateur complet au niveau du site et de la collection de sites. Mais j'obtiens toujours une erreur "Le serveur distant a renvoyé une erreur: 401 Non autorisé" lorsque j'essaie d'exécuter le code ci-dessus avec ce compte B. Y a-t-il d'autres autorisations requises pour établir une connexion à la bibliothèque/site SharePoint utilisant un objet client? modèle?

Répondre

1

Je pense que vous devez décommenter la ligne commentée suivante.

//ctx.Credentials = CredentialCache.DefaultCredentials; 

Cette déclaration

ctx.Credentials = CredentialCache.DefaultCredentials; 

passe sur le contexte de sécurité des pouvoirs (que vous définissez dans la ligne précédente) au site Web que vous essayez d'interagir avec.

+0

Même si je fais cela, c'est le même comportement. Le compte indiqué est incapable de se connecter au serveur. – bala

+1

C'est en fait quelque chose à voir avec le compte lui-même. J'ai couru le même test avec quelques autres comptes qui fonctionnaient parfaitement bien. – bala