Учетные данные для входа в SharePoint

В настоящее время я пытаюсь разработать приложение с помощью SharePoint, которое извлекает данные из списка.

Теперь я пытаюсь разработать функцию входа в систему, ошибка отображается, как показано ниже.

Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка.

Здесь с моим исходным кодом

string WebUrl = "https://xxx.sharepoint.com/sites/devspace";
            string username = txtUsername.Text;
            string pwd = txtPassword.Text;

            ClientContext context = new ClientContext(WebUrl);
            Web web = context.Web;

            SecureString passWord = new SecureString();
            foreach (char c in pwd.ToCharArray())
                passWord.AppendChar(c);
            context.Credentials = new SharePointOnlineCredentials(username, passWord);
            try
            {
                context.Load(web);
                context.ExecuteQuery();
                lblStatus.Text = "Olla " + web.Title;

            }catch(Exception ex)
            {
                lblStatus.Text = ex.Message.ToString();
            }

Любое предложение для этого? Заранее спасибо.

Обновлено:

Я использую SharePoint 2016, вход через Windows Server AD.


person Eng Soon Cheah    schedule 27.06.2019    source источник


Ответы (1)


Как уже говорилось, вы используете SharePoint 2016, поэтому загрузите и установите CSOM с пакетом Nuget версии SharePoint 2016, а не с SharePoint Online:

Microsoft.SharePoint2016.CSOM

И используйте этот фрагмент кода:

      ClientContext clientContext = new ClientContext("https://example.com/sites/testsite/");  
      clientContext.Credentials = new NetworkCredential("user", "password", "domain");
            // Get the SharePoint web  
            Web web = clientContext.Web;  

            // Get the SharePoint list collection for the web  
            ListCollection listColl = web.Lists;  

            // Retrieve the list collection properties  
            clientContext.Load(listColl);  

            // Execute the query to the server.  
            clientContext.ExecuteQuery();  

            // Loop through all the list  
            foreach (List list in listColl)  
            {  
                // Display the list title and ID  
                Console.WriteLine("List Name: " + list.Title + "; ID: " + list.Id);  
            }  
            Console.ReadLine();

SharePoint 2016 On Premise не требует использования класса SharePointOnlineCredentials, просто передайте имя пользователя, пароль и домен в виде фрагмента кода выше.

person Jerry    schedule 27.06.2019
comment
В Page_Load? - person Eng Soon Cheah; 27.06.2019
comment
У меня было изменение на .Net Framework 4.6, но ошибка все та же. WebURL с https . - person Eng Soon Cheah; 27.06.2019
comment
Я поместил внутрь Global.asax под Application_Start . Ошибка все та же. - person Eng Soon Cheah; 28.06.2019
comment
Если вы используете веб-приложение .NET, попробуйте создать консольное приложение, а затем протестируйте приведенный выше фрагмент кода, чтобы убедиться, что оно работает. Вы можете использовать последнюю версию SharePoint Online CSOM здесь: nuget.org/packages/Microsoft.SharePointOnline. CSOM - person Jerry; 28.06.2019
comment
Показанная ошибка: веб-сайт не поддерживает учетные данные SharePoint Online. Код состояния ответа — «ОК». Заголовки ответа: «Transfer-Encoding=chunked, Connection=keep-alive,Transfer-Encoding, Content-Type=text/html; charset=UTF-8, Date=Fri, 28 Jun 2019 08:01:12 GMT, Server=Proxy'. - person Eng Soon Cheah; 28.06.2019
comment
Был ли тот же код внутри консольного приложения, в котором нет этого сообщения об ошибке, проверьте мой измененный ответ. - person Jerry; 28.06.2019
comment
Только что найдено: SharePoint 2016 находится в помещении и входит в систему через Windows Server AD. - person Eng Soon Cheah; 28.06.2019
comment
Вы используете SharePoint Online или SharePoint 2016?? Тег вопроса создается с помощью SharePoint-Online. - person Jerry; 28.06.2019
comment
SharePoint 2016 - person Eng Soon Cheah; 28.06.2019
comment
О, SharePoint 2016 не может использовать учетные данные SharePoint Online, вы должны указать версию SharePoint в вопросе, я обновлю фрагмент кода в ответе. - person Jerry; 28.06.2019
comment
Готово, проверьте и попробуйте. - person Jerry; 28.06.2019
comment
Я получил сообщение об ошибке: не удается связаться с сайтом по указанному URL-адресу: мой URL-адрес — это путь xxx/XX/XXXX - person Eng Soon Cheah; 01.07.2019
comment
Убедитесь, что URL-адрес сайта действителен и вы используете CSOM SharePoint 2016. - person Jerry; 01.07.2019
comment
Любые обновления ? пожалуйста, поделитесь прогрессом, если это возможно. - person Jerry; 03.07.2019
comment
По-прежнему отображается ошибка: не удается связаться с сайтом по указанному URL-адресу. - person Eng Soon Cheah; 03.07.2019
comment
Можете ли вы получить доступ к сайту с URL-адресом в браузере? - person Jerry; 03.07.2019
comment
URL-адрес должен быть таким: domainname/sites/sitename. Пожалуйста, используйте действительный URL-адрес или поделитесь им с нами для лучшего идентифицировать. - person Jerry; 03.07.2019
comment
теперь другая проблема: удаленный сервер вернул ошибку: (407) Требуется аутентификация прокси. - person Eng Soon Cheah; 03.07.2019
comment
перейти к настройкам Internet Explorer через параметры меню - Инструменты / Свойства обозревателя / Подключения / Настройки локальной сети / снимите флажок «Автоматически определять настройки» и нажмите «ОК». - person Jerry; 03.07.2019