我正在尝试调用 SharePoint 列表服务来获取列表定义和数据。 SharePoint 网站是我的公司,但我无法控制它。以下是我对服务器安全性的了解:
服务器是 HTTPS:// 服务器在登录时接受 Windows Active Directory 凭据...
我尝试过 Basic、Digest、CredentialCache,只是 NetworkCredential、UnsafeAuthenticatedConnectionSharing、UseDefaultCredentials、PreAuthenticate...不确定正确的配置是什么...
我收到的错误是 HTTP 401 Unauthorized。
Uri url = new Uri(baseAddress + "/_vti_bin/Lists.asmx", UriKind.Absolute);
Lists.Lists client = new Lists.Lists();
// sometimes works
CredentialCache cache = new CredentialCache();
cache.Add(url, "NTLM", new NetworkCredential(context.UserName, context.Password, context.Domain));
client.UseDefaultCredentials = false;
client.Credentials = CredentialCache.DefaultCredentials;
// doesn't work ever
//client.Credentials = new NetworkCredential(context.UserName, context.Password, context.Domain);
//client.PreAuthenticate = true;
client.UnsafeAuthenticatedConnectionSharing = true;
client.Url = url.AbsoluteUri;
listData = client.GetList(listName).OuterXml;
最佳答案
此代码是否在与 SharePoint 相同的服务器上本地运行 - 如果是这样,那么它可能是 local loopback check 。
如果没有,那么您需要提供一些准确的详细信息 - 您的网站是否使用集成身份验证(如果是,是通过 NTLM 或 Kerberos)还是基本身份验证或表单?
此外 - 如果您尝试使用浏览器(以获取 WSDL)或 Web 服务测试工具(例如 SoapUI)来使用该 Web 服务,会发生什么情况?或one of the many alternatives
关于.NET 调用 SharePoint Web 服务收到 HTTP 401 未经授权的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953291/