如何提供凭据以在另一个域的服务器上执行查询?

我正在为他的域上有服务器的客户端工作。 我的工作站在我自己的域上。 我通常使用我的客户端域用户名和密码VPN进入客户端网络。 以下查询的问题是,当我执行查询时,我收到401 Unauthorized访问错误,可能是因为发送了错误的凭据。

客户端建议提供我的客户端域凭据,可能包含在#if DEBUG中,以便代码在开发环境中正常工作。

我如何提供凭证? 以下代码将出现在ASP MVC 2项目中。

ClientContext clientContext = new ClientContext(URL); List list = clientContext.Web.Lists.GetByTitle("My Documents"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = XML; ListItemCollection listItems = list.GetItems(camlQuery); clientContext.Load( listItems, items => items.Include(item => item["FileRef"])); clientContext.ExecuteQuery(); 

我更喜欢以编程方式执行此操作

这就是我需要做的全部:

  System.Net.NetworkCredential cred = new System.Net.NetworkCredential("myname", "mypassword"); ClientContext clientContext = new ClientContext(URL); clientContext.Credentials = cred; 

我仍然没有取得成功,但也许还有一些其他问题。

您可以在IIS上配置应用程序池凭据,这样运行应用程序的“用户”就有权访问其他服务器。

如果客户帐户已经是sharepoint站点的有效用户,则只需在下载之前使用默认凭据,如下所示。

 WebClient Client=new WebClient(); Client.UseDefaultCredentials=true; Client.DownloadFile(url, destination);