(注意我需要一个适用于2007和2010的解决方案)
我们有一个桌面应用程序,我们正在添加Sharepoint签入和退出功能以使用Web服务。
我们遇到的一个问题是确定(桌面应用程序的)当前用户是否签出了文档。
我们当前的方法是通过Lists GetListItems 调用获取有关文档的信息,如果文档已签出,将返回 ows_CheckoutUser 字段。
然后,我们想要将结帐用户的名称与用户名称进行比较。
问题是ows_CheckoutUser中的名称似乎是用户的显示名称而不是帐户名称,因此对于此检查而言不是唯一且不可靠。
我注意到ows_CheckoutUser也为用户返回了一个ID值,但我似乎无法找到如何获取当前用户的ID,所以我可以对此进行比较。
有没有人对此有任何想法?这是正确的方法,还是有更好的方法?
我曾考虑尝试通过GetListItems运行一个匹配文档名称的查询,结帐用户等于我的当前用户,看看我是否得到任何结果,但我认为这会遇到同样的问题。
或者我可能需要访问Web服务并使用author.dll?
修改
我开始通过Author.dll FP扩展程序使用RPC调用getDocsMetaInfo。
此调用实际上为您提供了签出文档的用户的帐户名称。
我仍然对使用Web服务的解决方案感兴趣
答案 0 :(得分:1)
不确定sharepoint的原生回复是什么,但我想它应该与使用Camelot .NET Connector for SharePoint时相同。
您有一些可能包含此信息的字段
实际上 LinkCheckedOutTitle 包含对检出文档的用户的可视引用。在我的情况下,它被列为trikksdomain \ trikks,或者如果localadmin将doc检出其机器\ administrator。
以下是SharePoint 2010文档库列参考指南。 http://www.bendsoft.com/download.php?id=b05c062a401cf8bc221ea5df63cc9570