How People Picker work in SharePoint 2013

In the good old days, I mean SharePoint 2010 and previous versions, you would see People picker control always come with two icons. One is user verification button and another is address book. However in SharePoint 2013, you will find many pages with People Picker control missed these two icons.

在舊的SharePoint版本, People Picker都跟隨兩個小icon, 一個是Check name, 一個是Address book. 但在SharePoint 2013中很多頁面的People Picker control都不見了兩個icon (例如Assign user進SharePoint group的頁), 取而代之的是一個懂Auto complete的People Picker

image

最近遇到一個難題, 在沒有Address book情況下, 來自非SharePoint域名的用戶都加不到, 尋找不到, 即使已經在User Profile Application中確定那些用戶已經同步到User Profile database, 也是加不到. 在People Picker中輸入域名和用戶名, 都出現No exact match was found的錯誤。

我先直接講一下People Picker如何回傳結果, 首先, 當用戶輸入字元時 (可以是login, 中英人名, 或email)都有可能搜索到, People Picker會回傳以下三點的結果:

1. Client side Cache (並非在Browser history而是在Registry DomStore — HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\DOMStore, 參考),
2. 指定的Domain Controller
3. 查找該people picker所在的Site Collection的User Information List (中文版Sharepoint會叫作「用戶資訊清單」

第1點方面, 只要用Browser的privacy mode就可以忽略

第2點, 預設People picker只會向SharePoint所在的domain DC詢問, 我上面遇到的就是這個問題, 我的SharePoint farm是裝在domainA.com之下. DomainA.com與DomainB.com是one-way trust, 必須要使用stsadm來設定好People Picker才懂得去找另一個域名的。(參考 Configure People Picker in SharePoint 2013)

致於第3點, 也是一個曾經令我頭痛的地方, 在我還未有設定好People Picker去查找DomainB.com前, 有一些Site Collection卻神奇的可以加DomainB.com的某些用戶, 有些則不能。要看User Information List有兩個方法, 一個是用PowerShell去列出來, 另一個是在網站URL後面加上/_Catalogs/Users/simple.aspx。使用PowerShell可以update, delete, add用戶, 但使用simple.aspx就只有readonly

User Information List是在以下情況下才會加入新名字的:
1. 有用戶被Assign到該Site collection底下的group
2. 有用戶在該Site Collection下觸發任何Change (add, modify, delete). 例如該SC容許Everyone參與權限(例如討論區), 任何用戶就可憑藉Everyone所授與的權限去make change, 然後被加到User Information List, 注意這並非即時的, 大概要3-5分鐘的時間

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: