我正在尝试为 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 小工具使用 JavaScript 读取 Visual studio Dll

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

此链接是在 Dot Net 项目中使用 Web 服务来更新列表项,但在注释中它还说明如何获取列表数据,然后我将如何验证我的用户

  • 另一个解决方案是使用 Jquery 获取共享点列表数据,就像之前的链接一样,但同样,我如何验证我的用户@小工具?

使用 jQuery 获取列表数据

一个从网站获取新闻源的小工具,它发送一个 HTTPxml 请求,然后请求 RSS 源,而我正在处理的共享点网站中没有 Rss 反馈

为阅读本文干杯,我希望你能增加你的知识或分享它:)

编辑 *我的意思是使用 Sharepoint MOSS“SPLIST”或“SPWEB”作为客户端对象模型,因为我使用的是 Moss,所以我无法使用客户端对象模型身份验证:(。非常抱歉错误的信息*

有帮助吗?

解决方案

您将其安装在用户 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 或类似的方式)

其他提示

如果您有能力在您的 Gadget 上部署 COM 组件,那么第一种方法就可行。您将逻辑包装在 CCW .NET 类的外观中(使用 .NET SP Client 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。) 两者都支持.

我首先尝试 DLL 方法。

更新: 糟糕,您使用的是 SP 2007,而不是 2010 - 没有 SP ClOM。我应该早点注意到的,抱歉……不过,您仍然可以创建一个 .NET DLL,通过 WS 与 SP 对话。您仍然可以设置 DefaultNetworkCredentialsHttpWebRequest.Credentials (休息)或 .Credentials 您的 WS 客户端类 (SOAP) 以获得 SSO 身份验证。或者创建您自己的 NetworkCredential 与名称和密码。

---费尔达

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top