(401) Unauthorized Error working with Client Objec

2019-06-25 06:55发布

问题:

I'm tryiing to retrieve a list of document libraries from a sharepoint site, here is my code, this is a windows app

public string[] GetDocumentLibraries(ClientContext ctx)
    {
        Collection<string> libraries = new Collection<string>();
        try
        {
            //Getting the site from the SP context
            Web oWebsite = ctx.Web;
            write("INFO: SP site gotten");

            //Getting the list collection from the SP site
            write("INFO: Getting the list collection from the SP site");
            ListCollection listCollect = oWebsite.Lists;
            write("INFO: Loading the list");
            ctx.Load(listCollect);
            write("INFO: Getting the list");
            ctx.ExecuteQuery();
            write("INFO: List Collection size: " + listCollect.Count);

            //Getting the list of document libraries
            foreach (List docLibList in oWebsite.Lists)
            {
                if (docLibList.BaseTemplate == (int)ListTemplateType.DocumentLibrary)
                {
                    write("INFO: Document Library: " + docLibList.Title);
                    libraries.Add(docLibList.Title);
                }
            }
        }
        catch (Exception e)
        {
            write("ERROR: Error getting the list of document libraries, error detail " + e.Message + " " + e.StackTrace);
        }

        return libraries.ToArray();
    }

I had tried this code in three different SharePoint servers, it works in two of them, but in the third one I'm getting this exception

ERROR: Error getting the list of document libraries, error detail The remote server returned an error: (401) Unauthorized.    at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute()
   at Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest()
   at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()
   at P_DocumentImporter.DocumentImporter.GetDocumentLibraries(ClientContext ctx)

And I'm sure the credentials are correct,

Any clue about this,

Thanks,

回答1:

This question looks old but, for the benefit of others that might view this question, there are only possible issues that cause this.

  1. The logon credentials (either missing or incorrect)
  2. A proxy/firewall between the client and server is not allowing the communication through.