Ошибка аутентификации при доступе к списку Sharepoint через веб-службу

Несколько месяцев назад я написал службу Windows, которая будет проверять связь со списком Sharepoint с помощью функции GetListItemChanges _vti_bin / lists.asmx. Он работал нормально, пока несколько недель назад моя компания не обновила наш экземпляр Sharepoint до SP1.
. Теперь всякий раз, когда моя служба пытается получить доступ к Sharepoint, я получаю ошибку аутентификации 401.1:

Ошибка:

You are not authorized to view this page
You do not have permission to view this directory or page using the credentials that you supplied.
Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)

Я проверил, и мои права на сайте не изменились. вот код, в котором я называю список:

Lists listsService = new Lists();
listsService.Credentials = new NetworkCredential("UserName", "Password", "domain");
Result = listsService.GetListItemChanges("List name", null, dTime.ToString(), null);

Мое внимание также было обращено на то, что базовая аутентификация могла быть отключена на нашей ферме. Не думаю, что использую это, но могу ошибаться.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
19 808
4

Ответы 4

У вас есть прокси во внутренней сети?

Я думаю о двойном прыжке, и эта базовая аутентификация не подвержена этому, а NTLM - нет. Если у вас есть прокси, то проблема с двойным прыжком. Если вы обращаетесь к машине напрямую и можете считать только один прыжок (от сервиса к веб-сервису), то это не должно быть проблемой.

Предполагая, что это не проблемы с аутентификацией SSL или Basic / Windows, я делаю ставку на это

Для проверки войдите на локальный сервер и попробуйте просмотреть свой сайт. Если вы не можете успешно использовать указанное выше имя пользователя / pwd, но можете с удаленного компьютера, то эта статья для вас.

Вы получаете ошибку 401.1 при просмотре веб-сайта, который использует встроенную проверку подлинности и размещен на IIS 5.1 или IIS 6.

http://support.microsoft.com/default.aspx?scid=kb;en-us;896861

Основываясь на предоставленной информации, я сомневаюсь, что это ошибка программирования. Можете ли вы получить доступ к интерфейсу диспетчера IIS на сервере, на котором размещен сайт SharePoint? Если да, проверьте допустимые разрешенные технологии аутентификации. Разрешены ли анонимные подключения? Включена ли встроенная проверка подлинности Windows? HTTP Basic auth? Спросите сотрудников вашей инфраструктуры / SharePoint о возможности двойного перехода (прокси). Если да, то это тоже может сработать, но его сложно настроить (делегирование Kerberos). Класс NetworkCredentials, по-видимому, поддерживает все стандартные схемы аутентификации, поддерживаемые IIS (за исключением форм):

http://msdn.microsoft.com/en-us/library/system.net.networkcredential(VS.80).aspx

Возможно, вам потребуется, чтобы специалисты по инфраструктуре установили имена участников-служб для веб-интерфейса SharePoint:

http://support.microsoft.com/kb/929650

Однако я не рекомендую ничего менять через диспетчер IIS. Попросите администратора SharePoint внести изменения в технологии проверки подлинности, разрешенные для сайта, через центр администрирования SharePoint.

С уважением, Сэм

Я только что нашел очень похожую проблему и решил ее благодаря статье MS KB: http://support.microsoft.com/kb/896861

Вот что вам стоит попробовать:

Method 2: Disable the loopback check Follow these steps:

  1. Click Start, click Run, type regedit, and then click OK.
  2. In Registry Editor, locate and then click the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Right-click Lsa, point to New, and then click DWORD Value.
  4. Type DisableLoopbackCheck, and then press ENTER.
  5. Right-click DisableLoopbackCheck, and then click Modify.
  6. In the Value data box, type 1, and then click OK.
  7. Quit Registry Editor, and then restart your computer.

Это решило ту же проблему в моей среде, где все обычные решения (добавление учетных данных к вызову веб-службы) терпели неудачу.

Другие вопросы по теме