有人可以告诉我,我是否有办法从Windows应用程序访问sharepoint列表?
我尝试了以下方式(我是在sharepoint成员的用户下):
SPUserToken token = new SPUserToken(
BitConverter.GetBytes(WindowsIdentity.GetCurrent().Token.ToInt32()));
SPSite site = new SPSite(siteName, token);
但没有运气......
答案 0 :(得分:2)
最好的办法是使用Web引用来查询SharePoint WebService的GetListItems Web方法:
http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx
答案 1 :(得分:1)
像Jason所说,为了能够使用SharePoint对象模型(即sharepoint dll),应用程序需要在与SharePoint相同的计算机上运行。如果它在其他任何地方,您只能使用SharePoint提供的Web服务(或创建自己的Web服务并将其部署到您的sharepoint服务器)。
P.S。在SharePoint 2010中,您可以使用客户端对象模型,基本上是完整共享点对象模型的子集(有点像Silverlight)。当然sp2010仍处于测试阶段......
答案 2 :(得分:1)
This article提供了一个关于如何使用Linq和Web服务执行此操作的优秀且详细的分步教程。它确实创建了一个控制台应用程序而不是Windows应用程序,但如果需要,可以很容易地将其转换为Windows窗体应用程序。当我开始以编程方式与SharePoint列表进行通信时,我发现这篇文章非常有用,因为它清楚地表明使用LINQ处理来自SharePoint的Web服务响应是多么容易。
答案 3 :(得分:0)
siteName
是否在运行Windows应用程序的同一台计算机上?如果没有,那么如果您使用的是SharePoint 2007,则无法访问该网站。
如果上述问题不存在,请检查用户帐户WindowsIdentity.GetCurrent()
是否至少是siteName
上的网站所有者。