我有以下代码在关闭基于表单的身份验证的情况下工作得非常好,但是当我打开它时它停止工作:
string baseURL = siteUrl + "/_api/";
string uriString = "web/lists/GetByTitle('" + listName + "')/fields/getbyinternalnameortitle('" + displayName + "')";
NetworkCredential cred = CredentialCache.DefaultNetworkCredentials;
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(new HttpClientHandler()
{
Credentials = cred
});
client.BaseAddress = new Uri(baseURL);
client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
HttpResponseMessage resp = client.GetAsync(uriString).Result;
string respString = resp.Content.ReadAsStringAsync().Result;
我得到的回复如下:
{StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Transfer-Encoding: chunked
X-SharePointHealthScore: 0
X-Forms_Based_Auth_Required:...)
我尝试了几件事,包括在 HttpClient Credentials 对象下指定场帐户 Windows 身份验证凭据,我还尝试使用 AuthenticationHeaderValue:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _FormatBasicAuth("domain", "username", "password"));
任何帮助将不胜感激。