Как переключиться с контекста windowsidentity на контекст, который представляет пользователя sharepoint windowsclaims - PullRequest
1 голос
/ 13 марта 2020

В Windowsservice с делегированным Windowsidentity мы получаем доступ к Sharepoint 2016 или 2019 с помощью объектной модели сервера Sharepoint (SSOM), расположенной в «Microsoft.SharePoint.dll». Служба Windows работает. NET 4.5.1, а SharePoint находится в режиме на основе утверждений. Код для доступа к SharePoint выглядит следующим образом:

   using (ServiceSecurityContext.Current.WindowsIdentity.Impersonate())
   {
       using (SPSite archive = new SPSite(siteId))
       using (SPWeb workArea = archive.OpenWeb(webId))
       {
           SPList list = workArea.Lists[listId];
           SPFile spFile = RetrieveSPFileFromSPList(list, fileId);
       }
   }

Пользователи windows олицетворяют себя и объекты SharePoint создаются. Это прекрасно работает для Siteadministrator, который является обычным пользователем windows. Если олицетворенный пользователь является другим пользователем домена f.ex. называется "домен \ пользователь1", доступ к SharePoint не разрешен. SharePoint знает «домен \ пользователь1» как пользователь windows, например «i: 0 # .w | домен \ пользователь1». Так как же сделать переключение контекста, которое может представлять windows пользователя "домен \ пользователь1" как "i: 0 # .w | домен \ пользователь1" для доступа к объектам на стороне сервера sharepoint?

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