Sambo
Sambo

Reputation: 1472

How do I pass my proxy credentials to a SharePoint Client Context object...? (SharePoint Client Object Model)

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...?

Upvotes: 8

Views: 13020

Answers (3)

Karthik
Karthik

Reputation: 1001

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, args) =>
{
  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();

Edit: Fixed typo (ags --> args)

Upvotes: 5

Lars Lynch
Lars Lynch

Reputation: 291

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>

Upvotes: 1

Kit Menke
Kit Menke

Reputation: 7056

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

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

Upvotes: 4

Related Questions