我認爲這裏的問題是,即使您找到用戶列表,如果用戶不存在於用戶信息列表中,工作流程也不會觸發任何操作。
如果用戶不存在於用戶信息列表中,那麼您將無法通過SharePoint對象模型找到它們,因爲它們不存在於SharePoint中。你將不得不以其他方式找到他們。
因此,基本上,它取決於認證是如何在SharePoint服務器上配置:
如果使用FBA,那麼誰可以與SharePoint驗證用戶必須存在於SQL數據庫的地方。 Membership.Provider會爲您提供FBA成員資格提供程序的鉤子(無論是SqlMembershipProvider還是其他)。然後您可以使用如下方法:
Membership.Provider.GetUser(username)
查看用戶是否存在。您還可以循環訪問您的用戶或查找所有現有的用戶名,然後您可以在人員選擇器中顯示該用戶名。
如果您使用的是Windows身份驗證,則必須查看您的AD以查找潛在用戶。 DirectoryEntry對象就是你需要的東西。我想只有來自某個AD組的用戶才能訪問SharePoint?如果是這樣,那麼使用DirectoryEntry對象隔離該組,循環遍歷用戶,並且您將擁有用於人員選擇器的數據源。
正如我上面所說的那樣,任何一種方法都會爲您提供可能的用戶,但如果用戶尚未登錄,它將不會使工作流程正常工作。工作流程僅適用於用戶信息中存在的用戶名單。
當有人選擇SharePoint中不存在的用戶時,您可能必須通過代碼創建它。一個安全的方法是使用SPWeb.EnsureUser。
檢查指定的登錄名 是否屬於 網站的有效用戶,並且如果登錄名不 尚不存在,將其添加到Web site.site。
所以真的,回答你的問題,無處。你需要尋找他們可能來自哪裏。
其實我今天才發現這個控件。有趣的是,如果你沒有很好地進行谷歌搜索,那麼錯過這樣的事情是多麼容易。 – 2011-04-11 12:44:31