Sharepoint 2016: IIS - использование удостоверения учетных данных для входа вместо удостоверения AppPool

У меня есть веб-сайт aspx, который развернут на сервере sharepoint 2016 и имеет вызовы служб Windows (WCF) на другом компьютере. Я хочу ввести учетные данные для входа и использовать эту учетную запись для запроса к службам Windows. Но все запросы имеют токен безопасности с идентификатором AppPool вместо моей учетной записи. Мой web.config:

<identity impersonate="true" />
<authentication mode="Forms" />
<authorization>
  <allow users="*" />
  <deny users="?" />
</authorization>

В IIS я включаю проверку подлинности Windows, олицетворение ASP.NET и анонимную проверку подлинности (это требуется SP 2016 для доступа к локальному ресурсу).

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

  • Пользователи HttpContext, SPContext, Thread Principal, WindowsPrincipal - все это моя учетная запись -> ОК, как и ожидалось
  • Но WindowsIdentity - это идентификатор AppPool -> NOK
  • И токен запроса WCF - это идентификатор AppPool -> NOK

Итак, как я могу настроить / code, чтобы иметь возможность установить учетную запись для входа в токен запроса WCF?

Спасибо.


person Thien Long    schedule 06.09.2016    source источник


Ответы (1)


Вы должны сами создать токен, необходимый для внешней службы (в вашем случае - службы WCF).

В стандартном проекте надстройки SharePoint, созданном из шаблона надстройки Visual Studio SharePoint, весь этот код предоставляется Microsoft в виде файлов SharePointContext.cs и TokenHelper.cs. Вы можете изучить эти 2 файла в качестве примера того, как надстройка SharePoint должна создавать токены OAuth и т. Д.

person Burst    schedule 25.03.2017