使用SOAP,Javascript,C#,Webservices,jQuery的Sharepoint 2007 List的Windows Gadget

时间:2012-05-18 09:57:35

标签: c# javascript web-services sharepoint windows-desktop-gadgets

我正在尝试为Sharepoint 2007开发一个Gadget,它将对用户进行身份验证,然后从特定的URL中获取一个sharepoint列表,

在过去的4天里,我一直在研究它,并遇到了不同的制作方法,但因为解决方案要么完成了一半,要么无法工作,要么太混乱,无法获得帮助或转换成我想要的东西。

因为Windows Gadget使用Scripting + HTML所以我有以下选项可以继续使用来制作这个小工具,

  • 创建一个Visual Studio项目(dll),它将使用Sharepoint的SPLIST / SPWeb为我提取列表,然后我可以使用JavaScript& Visual Studio“COM”读取dll(“Classes”)并在JavaScript中获取数据+在HTML上显示它。 这种方法的问题是,我不确定,如果我使用Sharepoint SPLIST创建一个“dll”并将其放入gadget文件夹,它是否适用于客户端(没有在PC上安装sharepoint)。 在尝试寻找有关这种问题解决方案的帮助时,我发现这个项目有点做同样的事情,但不确定我是否对它进行了更改并且它将使用“dll”我之前谈到的,这里是链接到小工具,

Gmail Gadget Using JavaScript to Read Visual studio Dll

  • 解决问题的第二种方法可以是,如果我使用Sharepoint webservices,那将获得所有列表项,但是在JavaScript中使用Webservices并不那么容易,所以如果我创建一个Visual Studio项目,那么web参考sharepoint webservices,并返回一个列表,我再次使用JavaScript从DLL中读取结果,并在HTML上显示它们。

This Link is Using Webservices in a Dot Net Project to Update a List Item, but In comments it also tells how to get List data, but then how I gonna authenticate my users

  • 另一个解决方案是使用Jquery来获取sharepoint List数据,比如之前的链接,但同样,我如何验证我的用户@ gadget?

Using jQuery to fetch List Data

A gadget that is getting News Feed from a website, its sending an HTTPxml request but then asking for a RSS feed, whereas i dont have Rss feedback in sharepoint site I am working on

欢呼阅读本文我希望你要么增加你的知识,要么分享它:)

修改 * 我的意思是使用Sharepoint MOSS“SPLIST”或“SPWEB”作为客户端对象模型,因为我使用Moss我不能使用客户端对象模型身份验证:(。真的很抱歉错误的信息 *

2 个答案:

答案 0 :(得分:1)

如果你能负担得起使用你的小工具的COM组件,第一种方法是可行的。您将逻辑包装在CCW .NET类的外观中(使用.NET SP Client OM)并通过regasm将其注册到COM。所有纯.NET,您的类将被声明(和写入)COM兼容。

您可能会发现第二种方法过于局限; SP ClOM支持SP WSs的更多功能。抛出jQuery不会改变它。 (不幸的是,SP JS ClOM只能在SP页面上使用;不能在小工具中使用。)

如果你采取痛苦的方式(JS ;-) IWA应该给你(Windows)SSO身份验证。如果从DLL调用SP ClOM,则可以重用当前用户(SSO)的Windows会话令牌,或者如果用户希望的话,可以通过您的表单明确进行身份验证。 (您可以使用与Windows不同的用户身份登录SP UI。)Both is supported

我首先尝试使用DLL方法。

更新:哎呀,你是SP 2007,不是2010年 - 没有SP ClOM。我应该早些时候注意到,抱歉......你仍然可以创建一个可以通过WS与SP对话的.NET DLL。您仍然可以将DefaultNetworkCredentials设置为HttpWebRequest.Credentials(REST)或WS客户端类(SOAP)的.Credentials以获得SSO身份验证。或者使用名称和密码创建自己的NetworkCredential

---费达

答案 1 :(得分:1)

您正在用户PC上安装它,因此您无法使用标准SharePoint API(Microsoft.SharePoint.dll)

您正在使用2007,因此您无法使用“客户端对象模型”(托管/ silverlight或EMCA脚本)

离开

a)SharePoint Web服务(JavaScript或JQuery仍然是JavaScript)。

这意味着您的小工具将通过与浏览您网站的人相同的机制向SharePoint进行身份验证 - 通常是集成Windows身份验证。

首先要做的是优秀的http://spservices.codeplex.com/库,它允许您轻松地从JQuery调用Web服务)。有关如何使用它的提示,请参阅文档。

对于半完成的项目,如何http://sharepointsidebar.codeplex.com/

b)通过在SharePoint服务器上部署dll创建自己的自定义Web服务,然后通过JavaScript调用这些服务(也许是使用JSON或类似的