How do I pass my proxy credentials to a SharePoint

2019-03-30 18:16发布

问题:

I'm writing an application that accesses a SharePoint site using the Client Object Model and I'm behind a proxy server.

I call...

ClientContext.ExecuteQuery()

and receive the following error message...

The remote server returned an error: (407) Proxy Authentication Required.

How do I pass my proxy credentials to the Client Context object...?

回答1:

You will need to pass the WebProxy (System.Net.WebProxy) object to the WebRequest instance executing your query. One way of doing this is

ClientContext context = new ClientContext("<a valid url>");
context.ExecutingWebRequest += (sen, ags) =>
{
  WebProxy myProxy = new WebProxy();
  myProxy.Address = new Uri("http://<proxy_server_address>");

  myProxy.Credentials = new System.Net.NetworkCredential("jack_reacher","<password>", "<domain>");
  args.WebRequestExecutor.WebRequest.Proxy = myProxy;
};
context.ExecuteQuery();


回答2:

I think you need the following in your app.config inside the <configuration> node:

  <system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
  </system.net>


回答3:

Try this in your app.config if your proxy server doesn't require authentication:

<system.net>
  <defaultProxy>
    <proxy
       usesystemdefault="False"
       proxyaddress="http://myproxyserver.company.com:8080"
       bypassonlocal="True"
     />
  </defaultProxy>
</system.net>