Загрузить файл версии SharePoint Office 365 - PullRequest
0 голосов
/ 09 января 2020

Я пытался загрузить файлы предыдущих версий SharePoint, используя c#. Я использовал Эта статья в качестве ссылки. Ссылка на рабочий файл с chrome. Теперь, когда я попробовал URL-адрес на c#, чтобы загрузить файл по частям, он дает мне Удаленный сервер возвратил ошибку: (401) Несанкционированный. Ошибка.

У меня есть даже предоставил токен доступа используя заголовок функции.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            WebHeaderCollection header = new WebHeaderCollection();
            request.Headers.Add(System.Net.HttpRequestHeader.Authorization, $"Bearer {token}");
            request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");

Здесь uri похож на адрес: http://yoursite/yoursubsite/_vti_history/512/Documents/Book1.xlsx

Как скачать предыдущий файл версии, использующий c#?

1 Ответ

1 голос
/ 09 января 2020

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

var login = "user@xxx.onmicrosoft.com";
            var password = "Password";

            var securePassword = new SecureString();

            foreach (char c in password)
            {
                securePassword.AppendChar(c);
            }
            SharePointOnlineCredentials onlineCredentials = new SharePointOnlineCredentials(login, securePassword);

            string webUrl = "https://xxx.sharepoint.com/sites/lee";
            string requestUrl = "https://xxx.sharepoint.com/sites/lee/_vti_history/512/MyDoc2/testdata.xlsx";
            Uri uri = new Uri(requestUrl);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            request.Method = "GET";
            request.Credentials = onlineCredentials;
            request.Headers[HttpRequestHeader.Cookie] = onlineCredentials.GetAuthenticationCookie(new Uri(webUrl), true);  // SPO requires cookie authentication
            request.Headers["X-FORMS_BASED_AUTH_ACCEPTED"] = "f";  // disable interactive forms-based auth            
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream stream = response.GetResponseStream();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...