Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何提供凭据以在';它是另一个域的一部分吗?_C#_.net_Asp.net Mvc_Sharepoint - Fatal编程技术网

C# 如何提供凭据以在';它是另一个域的一部分吗?

C# 如何提供凭据以在';它是另一个域的一部分吗?,c#,.net,asp.net-mvc,sharepoint,C#,.net,Asp.net Mvc,Sharepoint,我正在为一个在其域上有服务器的客户机工作。我的工作站在我自己的域上。我通常使用我的客户端域用户名和密码将VPN接入客户端网络。下面查询的问题是,我在执行查询时遇到401未经授权的访问错误,可能是因为发送了错误的凭据 客户机建议提供我的客户机域凭据,可能包装在#if DEBUG中,以便代码在开发环境中正常工作 如何提供凭据?以下代码将出现在ASP MVC 2项目中 ClientContext clientContext = new ClientContext(URL);

我正在为一个在其域上有服务器的客户机工作。我的工作站在我自己的域上。我通常使用我的客户端域用户名和密码将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();

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

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

我只需要这样做:

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

    clientContext.Credentials = cred;

我仍然没有获得成功,但这里可能还有一些其他问题。

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

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

您是否尝试过指定域,例如新的System.Net.NetworkCredential(“myname”、“mypassword”、“domain”)?事实证明,上述代码解决了该问题。解决了其他一些问题,就解决了我自己独特的问题。