У нас есть локальный SharePoint2013, и он включает несколько методов проверки подлинности (NTLM и FBA).C# SharePoint 2013 CSOM multi-authentication
Теперь, когда я пытаюсь выполнить аутентификацию на этом сервере с помощью CSOM и попытаюсь получить список, например, сервер возвращает: «Доступ запрещен. У вас нет разрешения на выполнение этого действия или доступа к этому ресурсу», хотя я имеют разрешения (имеют полный контроль и все, что необходимо), и SharePoint предоставляет мне файл cookie FedAuth. Проверяли запросы с помощью скрипача, похоже, что CSOM не может получить доступ к службе client.svc, даже если он запущен и запущен? Пример кода:
using System;
using System.Net;
using System.Security;
using SP = Microsoft.SharePoint.Client;
namespace TestConsoleTemp
{
public class Program
{
static void Main(string[] args)
{
using (SP.ClientContext context = new SP.ClientContext("https://mywebsite.com"))
{
var cc = new CredentialCache();
var passWord = new SecureString();
foreach (char c in "password".ToCharArray()) passWord.AppendChar(c);
cc.Add(new Uri("https://myportal.sis.lt"), "NTLM", new NetworkCredential("username", passWord, "domain"));
context.Credentials = cc;
context.ExecutingWebRequest += new EventHandler<SP.WebRequestEventArgs>(clientContext_ExecutingWebRequest);
var list = context.Web.Lists.GetByTitle("listName");
context.Load(list);
context.ExecuteQuery();
}
}
static void clientContext_ExecutingWebRequest(object sender, SP.WebRequestEventArgs e)
{
e.WebRequestExecutor.WebRequest.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
}
}
}
же код работает с другими серверами, где мы имеем только NTLM аутентификацию или на облаке (Office365) даже без добавления заголовка.
Может ли кто-нибудь объяснить, почему CSOM не работает, когда включены NTLM и FBA?
У нас есть пользовательская страница входа в систему, просто задаваясь вопросом, можно ли аутентифицироваться без изменения самого сайта SharePoint, потому что это не всегда возможно сделать, если вы разрабатываете для клиента и не контролируете его. – PsMaster
Я также хотел получить то же самое для своего сайта SharePoint, однако CSOM не может получить доступ к странице входа в 15 папок с ульями и, следовательно, к ошибке. Я нашел это [статья] (http://blogs.msdn.com/b/sridhara/archive/2014/02/06/sharepoint-2013-csom-call-from-web-part-fails-with-401- for-all-users.aspx), но не пробовал это в моей системе. Может быть, это поможет вам. – Godwin