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

本文关键字:另一个 服务器 查询 执行 属于 何提供 | 更新日期: 2023-09-27 17:50:24

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

客户端建议提供我的客户端域凭据,可能包装在#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);