Я конвертирую работающий c# веб-запрос, который загружает документ на sharepoint, чтобы использовать токен на предъявителя вместо повара ie, и я получаю перенаправление 302 на ссылку аутентификации. генерация токенов успешно загружает файлы и читает папки. Я пытался выяснить, чего мне не хватает, чтобы загрузка работала безуспешно.
Я преобразовал различные вызовы на sharepoint из файлов cookie, сгенерированных с помощью аутентификации по имени пользователя / паролю, для использования токена, сгенерированного из сертификата .
основная часть моих вызовов на sharepoint работает нормально, но те, которые загружают документ на sharepoint, терпят неудачу с ответом 302, указывающим на ссылку аутентификации в теле ответа.
поток аутентификации использует клиентский контекст sharepoint следующим образом.
//Microsoft.SharePoint.Client.ClientRuntimeContext
public static void SetupRequestCredential(ClientRuntimeContext context, HttpWebRequest request)
ClientRuntimeContext.SetupRequestCredential(authenticationContext, request);
Когда authenticationContext представляет собой clientcontext, инстанцированный именем пользователя / паролем
authenticationContext = new ClientContext(siteUrl)
{
Credentials = new SharePointOnlineCredentials(legacyAuthentication.account
, legacyAuthentication.password.ToSecureString())
};
Но когда мы генерируем clientcontext, используя контекст, сгенерированный сертификатом (как следует)
// this is our goal to move away from needing a username/password
var authManager = new SPtools.AuthenticationManager();
authenticationContext = authManager.GetAzureADAppOnlyAuthenticatedContext(siteUrl, clientId,
tenantDomain,
certPath,
certificatePassword);
* следует отметить, что когда мы используем контекст, сгенерированный сертификатом, мы также присоединяем заголовок авторизации, установленный к токену носителя (я также пытался пропустить этот код безрезультатно)
эти запросы работают для различных запросов к Это правда, но когда мы пытаемся сохранить документ, мы получаем 302, перенаправляющую нас на ссылку для аутентификации.
это усугубляется, потому что существует множество документации по sharepoint, но я не смог найти то, что Непосредственно имеет дело с конвертацией через унаследованный путь с использованием токена oauth2 и обнаружением 302. Я чувствую, что тонул в документации, которая, как мне кажется, поначалу может оказаться полезной, что оказывается ложными следами.
- Спасибо за любую помощь!
функциональный веб-запрос имеет следующие заголовки перед вызовом (webRequest) GetResponseAsyn c
Expect: 100-continue
Content-Length: #filesize#
Host: #host#
X-FORMS_BASED_AUTH_ACCEPTED: f
Cache-Control: no-cache
Translate: F
Accept-Language: en-us
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: multipart/form-data; charset=utf-8
Accept: */*
Cookie: #cookie generated from code#
неработающий веб-запрос имеет следующие заголовки
Expect: 100-continue
Content-Length: #filesize#
Host: #host#
Cache-Control: no-cache
Translate: F
Accept-Language: en-us
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: multipart/form-data; charset=utf-8
Accept: */*
Authorization: Bearer #token generated from code#