65.9K
CodeProject 正在变化。 阅读更多。
Home

InfoPath 中使用 SharePoint Online 查询用户配置文件服务的替代方法

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2017年6月5日

CPOL

1分钟阅读

viewsIcon

11170

downloadIcon

1

这是一篇关于 SP Online 中 SharePoint InfoPath 表单的技巧。

背景

在 InfoPath 表单中,为了自动填充用户详细信息,我们 SharePoint 开发人员通常会通过创建到 https://tahmidulabedin.me/_vti_bin/userprofileservice.asmx?WSDL 的数据连接来使用 GetUserProfileByName 方法。我们过去在本地 SharePoint 中使用这种方法。几天前,我尝试在 Office 365 的 SharePoint Online 中创建一个 InfoPath 表单,并收到一个错误:“连接到 Web 服务时发生错误”。

在互联网上搜索后,我发现微软故意禁用了对用户配置文件服务的访问,以防止循环问题。根据 微软支持,要调用 UserProfileService Web 服务,服务在返回任何数据之前需要数据安全身份验证。而 SharePoint UserProfileServiceGetUserProfileByName 方法以匿名方式进行调用,这是所有 Web 调用的惯例。由于 Web 应用程序不允许匿名访问,SharePoint 服务器会返回身份验证错误(代码 401)。

使用步骤

我不得不克服这个问题,并且找到了一种方法。为了填充常见用户字段,使用“用户信息列表”隐藏列表是最佳方法。要使用此列表创建数据集合,您需要遵循在 InfoPath 中创建数据连接的常规方法,并选择 SharePoint 列表或库 作为数据源。

Image

隐藏列表将与其他 SharePoint 列表一起显示。通过选择它,您可以获取许多用户属性,并根据需要提取它们。

Image2

关注点

如果有人知道任何更好的方法,请在下面的评论中告诉我,我将更新我的技巧。

© . All rights reserved.