Infopath 2013 通过UserProfileService读取AD用户信息

我刚刚看过什么C#文章获得当前用户使用Web服务的详细信息。
其实无需编写任何代码,可以实现完全相同的结果。所以我在这里简单的介绍一下:
*如果你已经熟悉这个,这个篇文章可以跳过。
*此介绍是建立在InfoPath和InfoPath Forms Services之上。

  1. 使用InfoPath打开工具>数据连接,并点击“添加...”添加一个新的数据连接形式。这将打开数据连接向导。
  2. 我们希望接有关当前用户的数据,所以选择“接收数据”,然后单击“下一步”。
  3. 选择SOAP Web服务。
  4. http://ServerName/_vti_bin/UserProfileService.asmx 键入地址,然后单击下一步。
  5. 选择“GetUserProfileByName” ,然后单击下一步。
  6. 在这个画面中你可以指定什么参数都发送的方法,我们这里选择点击下一步
  7. 单击“下一步”,确保''被检查打开表单时自动检索数据
  8. 完成向导。

GetProfileByName方法返回一个PropertyData。你可以认为它作为一个重复表的名称和值,所以,现在你有一个数据连接,可以得到当前的用户,你可以使用它的值。在这个例子中,我将在一个文本框中显示用户的名字。

1、添加一个文本框

2、双击文本框,属性,单击“FX”按键。

image

3、点击“插入域或组”

image

4、在数据源处选择GetUserProfileByName。

6、全部展开组下的数据域组,并选择Value字段,不要单击“确定”!!!

image

7、点击“筛选数据”并在第一个下拉值选择“Name”=“PreferredName”,这里的PreferredName是指全名。当然这里得根据你实际情况填写,例如:“UserProfile_GUID,AccountName,FirstName,LastName,PreferredName,WorkPhone,Office,Department”

image

最后来张效果图:

image

 

备注:

这里是得到由userprofileservice返回默认的配置文件属性的完整列表。

UserProfile_GUID
AccountName
FirstName
LastName
PreferredName
WorkPhone
Office
Department
Title
Manager
AboutMe
PersonalSpace
PictureURL
UserName
QuickLinks
WebSite
PublicSiteRedirect
SPS-Dotted-line
SPS-Peers
SPS-Responsibility
SPS-Skills
SPS-PastProjects
SPS-Interests
SPS-School
SPS-SipAddress
SPS-Birthday
SPS-MySiteUpgrade
SPS-DontSuggestList
SPS-ProxyAddresses
SPS-HireDate
SPS-LastColleagueAdded
SPS-OWAUrl
SPS-ResourceAccountName
SPS-MasterAccountName
Assistant
WorkEmail
CellPhone
Fax
HomePhone

以上字段可以在

管理中心 管理配置文件服务: User Profile Service Application -管理用户属性中获得

imageimage

posted @ 2013-07-18 13:53  bany  阅读(1226)  评论(1编辑  收藏  举报