Я схожу с ума с этим и не могу найти приличную информацию в любом месте ..
Существует много информации о подключении к веб-службам SharePoint 3.0 с помощью имитации WCF и Ntlm. Однако когда клиент, обращающийся к службам SharePoint, удален от сети SharePoint и должен пройти проверку подлинности, как лучше всего настроить и передать учетные данные службе SharePoint.
Могу ли я указать имя пользователя и пароль Windows, локальные для поля SharePoint внутри servicemodel.config. Наш экземпляр SharePoint работает автономно за пределами домена, к которому он обращается. Поэтому олицетворение не имеет значения, так как пользователей домена не существует в поле sharepoint.
Я пробовал много комбинаций, таких как следующие коды ... однако я неоднократно получал исключения, такие как:
"HTTP-запрос не авторизован с помощью схемы аутентификации клиента 'Anonymous'. Заголовок аутентификации, полученный от сервера, был 'NTLM, Basic realm =" wss.internaldev.local "'.
Может ли кто-нибудь привести пример подключения к «удаленной» веб-службе 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" />