[C#.NET][Infopath 2007] 利用 Web Service 取得目前登入的使用者 /Use Web Service Get the current user Account

[C#.NET][Infopath 2007] 利用 Web Service 取得目前登入的使用者 /Use Web Service Get the current user Account

當InfoPath在瀏覽器相容性,定義成可在瀏覽器開啟,使用者角色就不能用了,但又因為需要利用使用者帳號來給予控制項操作權限(唯讀、控制或隱藏),所以就必須利用Web Service來撈作業系統的帳號(工作站或是AD控制器)

2009-11-25 上午 12-10-40

 

 

如何使用Web Service,請自行替換掉ServerName

工具 → 資料連線 → 新增 → 建立新連線至 → 選擇 接收資料 →選擇 Web Service → 輸入 http://ServerName/_vti_bin/UserProfileService.asmx → 選擇 GetUserProfileByName → 在表單範本中儲存資料複本 → 開啟表單時自動截取資料

2009-11-25 上午 12-48-16

資料撈到了,接下來~

在InfoPath建立一個下拉式選單 → 從外部資料來源查詢值 → 選擇資料來源 → 項目 → Name

2009-11-25 上午 01-15-46

完成設定後,預覽一下表單,就會得到以下結果

2009-11-25 上午 01-27-26

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

 

 

Name是一個欄位值,我們可以利用他來取得目前的使用者。

接下來我們在文字方塊中利用公式定義值

2009-11-25 上午 01-35-55

接下來我們預覽一下結果,我們可以抓到使用者帳號了,就可以利用公式來做判斷了。

2009-11-25 上午 02-05-57

 

 

PS1.要用這隻Web Service必需要做兩個動作,先在Server(AD Control或者一般的Server)加入帳號,然後在SharePoint Server加入帳號。

PS2.表單必需要發怖到 SharePoint Server上(因為我們是利用SharePoint的Web Service),然後在SharePoint Server開啟InfoPath,接著就能切換使用者帳號來觀察我們所定義的公式。

另有方法亦可取得

[InfoPath] 利用 userName()函數 取得目前使用者 / Use userName() Method Get the Current User Account

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo