Как мне указать учетные данные Sharepoint? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть приложение .NET, которое использует Sharepoint.В коде приложения я использую ICredentials, чтобы указать имя пользователя и пароль, которые присваиваются свойству Credentials объекта ClientContext.

Это работает нормально, однако я хотел бы иметь возможность использовать Sharepoint сИнструмент REST, такой как почтальон, для более удобного тестирования и отладкиЯ не знаю, как указать учетные данные в этом случае.Я попытался отправить базовый заголовок аутентификации, но он не сработал.

Фрэнк

1 Ответ

0 голосов
/ 30 апреля 2019

Пример кода для вашей справки.

private static async Task<string> getWebTitle(string webUrl)
        {
            //Creating Password 
            const string PWD = "password";
            const string USER = "user@tenant.onmicrosoft.com";
            const string RESTURL = "{0}/_api/web?$select=Title";

            //Creating Credentials 
            var passWord = new SecureString();
            foreach (var c in PWD) passWord.AppendChar(c);
            var credential = new SharePointOnlineCredentials(USER, passWord);

            //Creating Handler to allows the client to use credentials and cookie 
            using (var handler = new HttpClientHandler() { Credentials = credential })
            {
                //Getting authentication cookies 
                Uri uri = new Uri(webUrl);
                handler.CookieContainer.SetCookies(uri, credential.GetAuthenticationCookie(uri));

                //Invoking REST API 
                using (var client = new HttpClient(handler))
                {
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    HttpResponseMessage response = await client.GetAsync(string.Format(RESTURL, webUrl)).ConfigureAwait(false);
                    response.EnsureSuccessStatusCode();

                    string jsonData = await response.Content.ReadAsStringAsync();

                    return jsonData;
                }
            }
        }
        static void Main(string[] args)
        {

            //Creating Password 
            string webUrl = "https://tenant.sharepoint.com/sites/lee";
            var data=getWebTitle(webUrl).GetAwaiter().GetResult();
            Console.WriteLine("done");
            Console.ReadKey();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...