У меня есть ферма SharePoint 2019, которая имеет 2 метода аутентификации: NTLM и Form. Если я подключаюсь через NTLM, используя этот код:
using (ClientContext context = new ClientContext("https://myserver"))
{
context.ExecutingWebRequest += (object sender, WebRequestEventArgs e) =>
{
e.WebRequest.Headers.Remove("X-FORMS_BASED_AUTH_ACCEPTED");
e.WebRequest.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
};
context.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
CredentialCache cache = new CredentialCache();
NetworkCredential cred = new NetworkCredential("windows username", "windows pwd", "domain");
cache.Add(new Uri(https://myserver), "NTLM", cred);
context.Credentials = cache;
var web = context.Web;
context.Load(web.Lists);
await context.ExecuteQueryAsync();
return true;
}
Работает нормально. Если я попробую этот метод с Аутентификацией по форме:
using (ClientContext context = new ClientContext("https://myserver"))
{
context.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
context.Credentials = new NetworkCredential("username", "password");
var web = context.Web;
context.Load(web.Lists);
await context.ExecuteQueryAsync();
return true;
}
, я получу 403, запрещено. Какой HTTP-заголовок я должен установить для запуска проверки подлинности формы вместо Windows?