我编写的代码如下:
try
{
ClientContext context = new ClientContext("https://test.com/");
System.Net.ServicePointManager.ServerCertificateValidationCallback =
((sender, certificate, chain, sslPolicyErrors) => true);
string strUserName = @"abc";
string strPassword = "pwd";
var credentials = new NetworkCredential(strUserName, strPassword);
Web web = context.Web;
context.Load(web, w => w.Title);
context.Credentials = credentials;
context.ExecuteQuery();
// Now, the web's properties are available and we could display
// web properties, such as title.
System.Console.WriteLine("Web Title");
System.Console.WriteLine(web.Title);
}
catch (Exception ex)
{
}
它在控制台应用程序中运行良好,但是当我从Web服务调用时,相同的代码无效。
答案 0 :(得分:1)
鉴于我们的讨论;问题可能是您的IIS应用程序池正在运行的帐户无权访问Sharepoint站点。您需要应用程序池帐户才能在AD中访问,以便您的代码能够正常运行。您需要执行以下操作之一;
获取授予Sharepoint AD权限的应用池帐户。这不太可能,因为IIS 7及更高版本默认使用应用程序池的“奇数帐户”。
更有可能的是,您需要将您的应用池运行的帐户更改为具有相应AD权限的帐户。在我工作的大多数公司中,有一个“服务帐户”或“自动帐户”用于此目的。