2016-06-03 12 views
0

Ich arbeite an einer SSIS-Skriptaufgabe, die eine Datei auf eine SharePoint-Website hochlädt und Artikelebene Berechtigung für die Datei anwendet. Ich verwende ein Windows-Konto, um eine Verbindung mit SharePoint-Bibliothek wie unten herzustellen.Hochladen von Datei in SharePoint mit Client Object Model - 401 nicht autorisierte

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); 
    } 
} 

Das Konto hat Administratorrechte auf die Sharepoint-Website, so macht es eine Verbindung zu ihm perfekt und die Datei ohne Probleme hochgeladen wird. Jetzt gibt es ein weiteres Konto, nennen wir es Konto B, das sowohl auf Website- als auch auf Websitesammlungsebene über vollständigen Administratorzugriff verfügt. Aber immer noch bekomme ich einen Fehler 'Der Remote-Server gab einen Fehler zurück: 401 Unauthorized', wenn ich den obigen Code mit diesem Account ausführe. B. Gibt es eine andere Berechtigung, die benötigt wird, um eine Verbindung zur SharePoint-Bibliothek/Site mit dem Client-Objekt herzustellen Modell?

Antwort

1

Ich denke, Sie müssen die folgende kommentierte Zeile auskommentieren.

//ctx.Credentials = CredentialCache.DefaultCredentials; 

Diese Aussage

ctx.Credentials = CredentialCache.DefaultCredentials; 

Pass auf dem Sicherheitskontext der Anmeldeinformationen für die Web-Site (die Sie in der vorherigen Zeile setzen), mit dem Sie interagieren möchten.

+0

Auch wenn ich das tue, ist es das gleiche Verhalten. Das Konto kann keine Verbindung zum Server herstellen. – bala

+1

Es ist eigentlich etwas mit dem Konto selbst zu tun. Ich habe den gleichen Test mit ein paar weiteren Konten durchgeführt, die vollkommen in Ordnung waren. – bala