使用 jquery 通过 Web 服务从 sharepoint 检索文档

发布于 2024-08-27 05:31:16 字数 238 浏览 12 评论 0原文

我正在尝试开发一个可以通过网络服务与 MOSS 站点交互的移动应用程序。 我希望它能够;

1)检索文档(pdf、doc、docx、excel) 2) 检索 PDF 或 Excel 形式的报告服务报告。

我将使用phonegap 或rhomobile 来开发这个应用程序,并且我知道我可以使用jquery 使用Web 服务。

我的问题围绕 MOSS Web 服务安全性。我将如何处理身份验证?

谢谢

I am trying to develop a mobile application which can interact with a MOSS Site via web services.
i expect it to be be able to;

1) retrieve documents (pdf, doc, docx, excel)
2) retrieve reporting services reports in a PDF or excel form.

i will be using either phonegap or rhomobile to develop this app and i know that i can consume web services using jquery.

My question revolves around MOSS Web Services Security. How will i handle authentication?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绿光 2024-09-03 05:31:16

您的 MOSS 网站集上的身份验证如何进行?是windows认证吗?如果是,那么您可以在创建 Soap 客户端来访问 Web 服务时使用模拟:

EndpointAddress endpointAddress = new EndpointAddress("http://site/_vti_bin/Lists.asmx");

//Just create a basicHttpBinding with standard web services settings
SoapClient soapClient = new SoapClient(basicHttpBinding, endpointAddress);

soapClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

只需确保 web.config 中允许模拟即可。寻找节点

<identity impersonate="true" />

How does the authentication work on your MOSS site collection? Is it windows authentication? If it is, then you can use impersonation when you create the Soap Client to access the web service :

EndpointAddress endpointAddress = new EndpointAddress("http://site/_vti_bin/Lists.asmx");

//Just create a basicHttpBinding with standard web services settings
SoapClient soapClient = new SoapClient(basicHttpBinding, endpointAddress);

soapClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

Just make sure that impersonation is allowed in your web.config. Look for the node

<identity impersonate="true" />
﹉夏雨初晴づ 2024-09-03 05:31:16

如果您的用户在移动设备上登录了他们的 AD 帐户,Hugo 的答案可能会起作用。

如果不是这种情况,您的移动应用程序可以调用您的网络服务。您的 Web 服务在应用程序池中运行,该应用程序池以允许调用共享点服务的用户身份运行。

然后,您可以使用 impersonate=false 调用 sharepoint Web 服务。

有一些事情可能会给您带来问题:

  • 您必须以某种方式对您的用户进行身份验证,否则您将打开您的共享点站点。
  • 通过 JSON 发送二进制数据也存在问题

JSON 没有 <[CDATA[]]>
功能,所以不太适合
作为声音或图像的载体
或其他大型二进制有效负载。 JSON
针对数据进行了优化。除了,
交付可执行程序
数据交换系统可以
引入危险的安全问题。

http://www.json.org/xml.html

Hugo's answer may work if your users are logged into their AD accounts on the mobile devices.

If this is not the case your mobile apps can call your web services. Your web services run in an application pool that is running under the identity of a user that is allowed to call the sharepoint services.

You then make a call to the sharepoint web services using impersonate=false.

There are a couple of things that could give you problems:

  • You must authenticate your users somehow or else you will be opening up your sharepoint site.
  • There is also a problem sending binary data over JSON

JSON does not have a <[CDATA[]]>
feature, so it is not well suited to
act as a carrier of sounds or images
or other large binary payloads. JSON
is optimized for data. Besides,
delivering executable programs in a
data-interchange system could
introduce dangerous security problems.

http://www.json.org/xml.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文