如何将代理凭据传递给SharePoint客户端上下文对象...? (SharePoint客户端对象模型)

时间:2010-11-11 05:52:03

标签: sharepoint sharepoint-2010

我正在编写一个使用客户端对象模型访问SharePoint网站的应用程序,并且我在代理服务器后面。

我打电话......

ClientContext.ExecuteQuery()

并收到以下错误消息...

远程服务器返回错误:(407)需要代理验证。

如何将代理凭据传递给客户端上下文对象...?

3 个答案:

答案 0 :(得分:4)

我认为您在<configuration>节点内的app.config中需要以下内容:

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

答案 1 :(得分:4)

您需要将WebProxy(System.Net.WebProxy)对象传递给执行查询的WebRequest实例。一种方法是

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 :(得分:1)

如果您的代理服务器不需要身份验证,请在app.config中尝试此操作:

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