从Windows应用程序访问共享点列表

时间:2009-11-20 13:52:20

标签: sharepoint

有人可以告诉我,我是否有办法从Windows应用程序访问sharepoint列表?

我尝试了以下方式(我是在sharepoint成员的用户下):

SPUserToken token = new SPUserToken(
            BitConverter.GetBytes(WindowsIdentity.GetCurrent().Token.ToInt32()));
SPSite site = new SPSite(siteName, token);

但没有运气......

4 个答案:

答案 0 :(得分:2)

最好的办法是使用Web引用来查询SharePoint WebService的GetListItems Web方法:

http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx

答案 1 :(得分:1)

This article提供了一个关于如何使用Linq和Web服务执行此操作的优秀且详细的分步教程。它确实创建了一个控制台应用程序而不是Windows应用程序,但如果需要,可以很容易地将其转换为Windows窗体应用程序。当我开始以编程方式与SharePoint列表进行通信时,我发现这篇文章非常有用,因为它清楚地表明使用LINQ处理来自SharePoint的Web服务响应是多么容易。

答案 2 :(得分:1)

像Jason所说,为了能够使用SharePoint对象模型(即sharepoint dll),应用程序需要在与SharePoint相同的计算机上运行。如果它在其他任何地方,您只能使用SharePoint提供的Web服务(或创建自己的Web服务并将其部署到您的sharepoint服务器)。

P.S。在SharePoint 2010中,您可以使用客户端对象模型,基本上是完整共享点对象模型的子集(有点像Silverlight)。当然sp2010仍处于测试阶段......

答案 3 :(得分:0)

siteName是否在运行Windows应用程序的同一台计算机上?如果没有,那么如果您使用的是SharePoint 2007,则无法访问该网站。

如果上述问题不存在,请检查用户帐户WindowsIdentity.GetCurrent()是否至少是siteName上的网站所有者。