【问题标题】:Windows Gadget for Sharepoint 2007 List using SOAP, Javascript, C#, Webservices, jQueryWindows Gadget for Sharepoint 2007 List 使用 SOAP、Javascript、C#、Webservices、jQuery
【发布时间】:2012-05-25 21:38:27
【问题描述】:

我正在尝试为 Sharepoint 2007 开发一个小工具,它将对用户进行身份验证,然后从特定 URL 获取他的共享点列表,

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

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

  • 创建一个 Visual Studio 项目 (dll),它将使用 Sharepoint 的 SPLIST/SPWeb 为我获取列表,然后我可以使用 JavaScript 和 Visual Studio“COM”读取该 dll(“类”)并在 JavaScript 中获取数据+ 在 HTML 上显示它。 这种方法的问题是,我不确定,如果我使用 Sharepoint SPLIST 创建一个“dll”并将其放入小工具文件夹中,它是否可以在客户端上运行(那里的 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 获取共享点列表数据,就像之前的链接一样,但同样,我如何验证我的用户 @ 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 我不能使用客户端对象模型身份验证:(。真的很抱歉错误信息*

【问题讨论】:

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


    【解决方案1】:

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

    您使用的是 2007,因此不能使用“客户端对象模型”(托管/silverlight 或 EMCA 脚本)

    离开

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

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

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

    对于一个完成了一半的项目,http://sharepointsidebar.codeplex.com/

    b) 通过在 SharePoint 服务器上部署一个 dll 来创建您自己的自定义 Web 服务,然后通过 JavaScript 调用这些服务(可能使用 JSON 或类似的方法

    【讨论】:

    • 嗨 Ryan,我也试过这个,但它没有做任何身份验证,我想知道如何将身份验证添加到一半完成的项目 + 您可以在 sharepoint 环境中使用的 Spservices,而不是小工具,如果错了,请纠正我,干杯:)
    【解决方案2】:

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

    稍后您可能会发现第二种方法过于局限; SP ClOM 支持比 SP WS 更多的功能。把 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。我应该早点注意到,抱歉...不过,您可以创建一个 .NET DLL,它可以通过 WS 与 SP 对话。您仍然可以将 WS 客户端类 (SOAP) 的 DefaultNetworkCredentials 设置为 HttpWebRequest.Credentials (REST) 或 .Credentials 以获取 SSO 身份验证。或者使用名称和密码创建您自己的NetworkCredential

    --- 费达

    【讨论】:

    • 非常感谢 Ferda 的贡献,但我恐怕无法使用客户端对象模型身份验证,因为我在这种情况下使用的是 MOSS,抱歉提供错误信息
    • 糟糕,您使用的是 SP 2007,抱歉...我更新了帖子。如果 SP WS 不够用,您可以按照 Ryan 的建议在 SP 上部署自己的 WS。您应该能够从 .NET DLL 访问它,而不会出现任何身份验证问题。
    • 嗨,费迪南德,当已经有 Sharepoint 的 Web 服务可供使用时,我不明白部署自己的 Web 服务的概念:S
    • 如果 SP 不能提供您需要的功能,您将开发自己的 WS。如果lists.asmx 足以完成您的任务,那就更简单了 - 只需使用它。
    • 是的,它可以满足我的要求 :),但是我想分享一下,我发现一个博客可以完成我想要的部分功能,但它用于表单身份验证,而我想要它用于 windows 和它对我来说也不完整,这是链接sharepointificate.blogspot.co.uk/2011/09/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多