2011-12-20 103 views
1

有沒有辦法使用快速查詢或查詢來通過電子郵件或自定義字段獲取用戶?我試過這個,但它在查詢工具中不起作用用戶的Sitecore查詢/快速查詢

/sitecore/user // * [@@ templateid ='{642C9A7E-EE31-4979-86F0-39F338C10AFB}'AND @ email ='abc @ 123 .com']

+0

當你說「用戶,」你的意思是你通過用戶管理實際Sitecore的用戶,存儲在覈心數據庫,還是你的意思是你的自定義模板已在樹的新部分('/ sitecore/user')中創建? – 2011-12-20 19:19:38

+0

我的意思是可以使用用戶管理器訪問sitecore用戶。 – Gabbar 2011-12-20 19:59:52

回答

10

您不能在用戶管理器中查詢(通過Sitecore查詢或快速查詢)用戶,因爲它們不是項目,它們實際上是基於Core數據庫中的ASP.NET成員構建的。相反,您可以查看Membership.GetAllUsers()MSDN doc)之類的內容,並根據您要查找的內容使用LINQ過濾結果。

我在Sitecore中做了類似的事情,我調用了Sitecore.Security.Accounts.UserManager.GetUsers(),並按其名稱屬性過濾了生成的User對象。你可以做類似這樣的:

var matches = UserManager.GetUsers().Where(usr => usr.Profile.Email.Equals(emailToMatch)); 
+0

這就是我正在尋找的。謝謝 – Gabbar 2011-12-20 20:29:28

+0

也真的需要一個 - 謝謝! :) – 2012-07-31 07:19:43