Подтвердить что ты не робот

Подключение и аутентификация в SharePoint с помощью WCF

Я собираюсь сходить с ума и не могу найти никакой достойной информации ВЕЗДЕ..

Существует много информации о подключении к веб-службам SharePoint 3.0 с олицетворением WCF и Ntlm. Однако, когда клиент, обращающийся к службам SharePoint, удален из сети SharePoint и нуждается в аутентификации, как лучше настроить и передать учетные данные службе SharePoint.

Можно ли указать имя пользователя и пароль для Windows локально в поле SharePoint внутри servicemodel.config.. наш экземпляр SharePoint работает как автономный вне домена, который обращается к нему. Поэтому олицетворение не имеет значения, поскольку пользователи домена не существуют в поле sharepoint.

Я пробовал много комбинаций, таких как следующие коды.. однако я неоднократно получаю исключения, такие как:

"HTTP-запрос неавторизован с помощью схемы проверки подлинности клиента" Аноним ". Заголовок аутентификации, полученный с сервера, был" NTLM, Basic realm = "wss.internaldev.local".

Может ли кто-нибудь предоставить пример подключения к веб-службе "remote" SharePoint с учетными данными Windows?

ListsSoapClient proxy = new ListsSoapClient();

proxy.ClientCredentials.Windows.ClientCredential.UserName = "admin_user";
proxy.ClientCredentials.Windows.ClientCredential.Password = "admin_password";
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification;

listItems = proxy.GetListItems(...);

proxy.Close();

Примеры привязки:

<security mode="TransportCredentialOnly">
  <transport clientCredentialType="Windows" proxyCredentialType="None" />
</security>

или..

<security mode="TransportCredentialOnly">
  <transport clientCredentialType="Ntlm" />
</security> 

поведение:

<behavior name="behavior_WSS">
  <clientCredentials>
    <windows allowedImpersonationLevel="Impersonation" allowNtlm="true" />
  </clientCredentials>
</behavior>

или

    <windows allowedImpersonationLevel="Delegation" allowNtlm="true" />
4b9b3361

Ответ 1

Вы попробовали предлагаемые здесь вещи?

например, в коде:

proxy.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonation.Impersonate;
// AllowNtlm = false;