2011-12-20 101 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