(обратите внимание, мне нужно решение для этого, которое работает в 2007 и 2010 годах)
У нас есть настольное приложение, в которое мы добавляем функциональность регистрации и передачи Sharepoint для использования веб-служб.
Одна из проблем, с которой мы сталкиваемся, заключается в том, чтобы определить, получил ли текущий пользователь (из настольного приложения) документ, извлеченный.
Наш текущий подход заключается в получении информации о рассматриваемом документе через вызовы Lists GetListItems , который вернет нам поле ows_CheckoutUser , если документ извлечен.
Затем мы хотим сравнить имя проверяемого пользователя с именем нашего пользователя.
Проблема в том, что имя в ows_CheckoutUser, по-видимому, является отображаемым именем пользователя, а не именем учетной записи, и поэтому не является уникальным и ненадежным для этой проверки.
Я заметил, что ows_CheckoutUser также возвращает значение идентификатора для пользователя, но я не могу выяснить, как получить идентификатор моего текущего пользователя, поэтому вместо этого я могу сравнить его.
У кого-нибудь есть мысли по этому поводу? Это правильный путь или есть лучший способ?
Я думал о попытке выполнить запрос через GetListItems, который соответствовал бы имени документа, а пользователь извлечения приравнивал моего текущего пользователя, чтобы увидеть, получу ли я какие-либо результаты назад, но я думаю, что это будет страдать от той же проблемы.
Или, может быть, мне нужно выйти за пределы веб-служб и использовать author.dll?
Редактировать
Я начал использовать RPC-вызов getDocsMetaInfo через расширение Author.dll FP.
Этот вызов фактически дает вам имя учетной записи пользователя, которому документ был выписан.
Мне бы все равно было интересно решение с использованием веб-сервисов.