Учетные данные для входа в SharePoint - PullRequest
0 голосов
/ 27 июня 2019

В настоящее время я пытаюсь разработать приложение с использованием 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.

1 Ответ

0 голосов
/ 27 июня 2019

Как уже говорилось, вы используете 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, просто передайте имя пользователя, пароль, домен как фрагмент кода выше.

...