Передача учетных данных Windows из Web Api в SharePoint Api - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть веб-API, который вызывается угловым веб-приложением через проверку подлинности Windows.Мне нужно использовать учетные данные, которые передаются через проверку подлинности Windows, чтобы получить доступ к точке доступа API.

Ниже приведен пример кода, который у меня сейчас есть.(Обратите внимание, что ... символизирует, где я пропустил некоторый код, есть еще несколько случаев, и я не верю, что код того, что делается на Sharepoint, необходим для этого.)

using Microsoft.SharePoint.Client.Utilities;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Web.Http;
using System.Security.Claims;
using Microsoft.SharePoint.Client;
using System.Web;
using SP = Microsoft.SharePoint.Client;
using System.Security.Principal;
using System.Net;

...

 public static List<SPDocument> GetSPDocumentsById(int itemId)
 {  
    using (ClientContext context = new ClientContext("https://...")
    {                     
        //This I believe is giving me the IIS user Identity, and not the Windows
        //credentials that the user is logging into the API with. 
        context.Credentials = CredentialCache.DefaultNetworkCredentials;

        ...

    }
 }


Моя проблема очень похожа на проблему в этом вопросе: Идентификация пула приложений IIS для использования идентификатора Windows-пользователя вошедшего в систему , но действия по ее устранению не устраняют мою проблему.Внутри контроллера, если я проверяю значение HttpContext.Current.User.Identity.Name

, я получаю ожидаемое имя пользователя, но если я проверяю WindowsIdentity.GetCurrent().Name;, я получаю учетную запись пользователя IIS.Если бы вызов WindowsIdentity.GetCurrent().Name; возвратил учетную запись Windows, вошедшую в систему, это решило бы мою проблему.

1 Ответ

0 голосов
/ 22 апреля 2019

Оказывается, что это была проблема двойного прыжка Kerbos, как объяснено в этой статье (https://blogs.technet.microsoft.com/askds/2008/06/13/understanding-kerberos-double-hop/),, чтобы исправить это, мы просто перенесли API на тот же сервер, что и другой ресурс, к которому он пытался подключиться.

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