Как я могу использовать веб-службы SharePoint, чтобы определить, есть ли у пользователя документ? - PullRequest
4 голосов
/ 07 ноября 2011

(обратите внимание, мне нужно решение для этого, которое работает в 2007 и 2010 годах)

У нас есть настольное приложение, в которое мы добавляем функциональность регистрации и передачи Sharepoint для использования веб-служб.

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

Наш текущий подход заключается в получении информации о рассматриваемом документе через вызовы Lists GetListItems , который вернет нам поле ows_CheckoutUser , если документ извлечен.

Затем мы хотим сравнить имя проверяемого пользователя с именем нашего пользователя.

Проблема в том, что имя в ows_CheckoutUser, по-видимому, является отображаемым именем пользователя, а не именем учетной записи, и поэтому не является уникальным и ненадежным для этой проверки.

Я заметил, что ows_CheckoutUser также возвращает значение идентификатора для пользователя, но я не могу выяснить, как получить идентификатор моего текущего пользователя, поэтому вместо этого я могу сравнить его.

У кого-нибудь есть мысли по этому поводу? Это правильный путь или есть лучший способ?

Я думал о попытке выполнить запрос через GetListItems, который соответствовал бы имени документа, а пользователь извлечения приравнивал моего текущего пользователя, чтобы увидеть, получу ли я какие-либо результаты назад, но я думаю, что это будет страдать от той же проблемы.

Или, может быть, мне нужно выйти за пределы веб-служб и использовать author.dll?

Редактировать

Я начал использовать RPC-вызов getDocsMetaInfo через расширение Author.dll FP.

Этот вызов фактически дает вам имя учетной записи пользователя, которому документ был выписан.

Мне бы все равно было интересно решение с использованием веб-сервисов.

1 Ответ

1 голос
/ 08 ноября 2011

Не знаю, какой ответ у sharepoint, но я полагаю, что он должен быть таким же, как при использовании Camelot .NET Connector для SharePoint.

У вас есть несколько полей, которые могут содержать эту информацию

  • CheckedOutUserId, идентификатор пользователя, у которого есть элемент, извлеченный (поиск)
  • IsCheckedoutToLocal, (Lookup)
  • CheckoutUser, Checked To (User)
  • CheckedOutTitle, извлечено (пользователю) -
  • LinkCheckedOutTitle, извлечено для (вычислено)

На самом деле LinkCheckedOutTitle содержит визуальную ссылку на пользователя, который извлек документ. В моем случае он указан как trikksdomain \ trikks, или если localadmin проверил документ на своем компьютере \ администраторе.

Вот справочное руководство по столбцам библиотеки документов SharePoint 2010. http://www.bendsoft.com/download.php?id=b05c062a401cf8bc221ea5df63cc9570

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