Sharepoint ODATA API и как пройти аутентификацию с использованием сервисной учетной записи - PullRequest
0 голосов
/ 27 марта 2012

Я вызываю API SharePoint REST / ODATA, и по умолчанию контекст данных использует DefaultCredentials, который действительно является вошедшим в систему пользователем моего приложения Asp.Net.Если я не присоединяю DefaultCredentials к контексту, то я просто получаю 401 Unauthorized.

Мне было интересно, как вызвать SharePoint API при использовании учетных данных пула приложений?Я пытаюсь следовать подходу безопасности доверенных систем.В противном случае сайт SharePoint должен предоставлять доступ к ODATA, и некоторые списки должны быть доступны для записи практически всем (gak!).

Например, при соединении SQL я бы просто установил «Integrated Security = true», чтобы использоватьучетные данные пула приложений.

1 Ответ

0 голосов
/ 29 марта 2012

Прав ли я, что вы используете приложение ASP.NET на , отличном от , чем сервер SharePoint?(Вне фермы; только компьютер с IIS и ASP.NET.) Если ваш пул приложений ASP.NET работает под тем же пользователем , что и ваше веб-приложение SharePoint, вы можете временно выдать себя за код вашего обработчика илиперейдите на страницу пользователя пула приложений и используйте сетевые учетные данные по умолчанию :

using (HostingEnvironment.Impersonate()) {
    ICredentials credentials = CredentialCache.DefaultNetworkCredentials;
    // ... use the credentials
}

Если вам известны учетные данные (имя и пароль) пользователя пула приложений из какой-либо конфигурации, вы можете сделать HTTPзапросите их напрямую:

ICredentials credentials = new NetworkCredential("user_name", "password");
// ... use the credentials

--- Ferda

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...