C# 如何提供凭据以在';它是另一个域的一部分吗?
我正在为一个在其域上有服务器的客户机工作。我的工作站在我自己的域上。我通常使用我的客户端域用户名和密码将VPN接入客户端网络。下面查询的问题是,我在执行查询时遇到401未经授权的访问错误,可能是因为发送了错误的凭据 客户机建议提供我的客户机域凭据,可能包装在#if DEBUG中,以便代码在开发环境中正常工作 如何提供凭据?以下代码将出现在ASP MVC 2项目中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);
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”)?事实证明,上述代码解决了该问题。解决了其他一些问题,就解决了我自己独特的问题。