有没有办法使用快速查询或查询来通过电子邮件或自定义字段获取用户?我试过这个,但它在查询工具
中没有用/ sitecore / user // * [@@ templateid ='{642C9A7E-EE31-4979-86F0-39F338C10AFB}'和@ email ='abc @ 123.com']
答案 0 :(得分:10)
您无法在用户管理器中查询(通过Sitecore查询或快速查询)用户,因为它们不是项目,它们实际上是在Core数据库中的ASP.NET成员资格上构建的。相反,您可以查看Membership.GetAllUsers()
(MSDN doc)之类的内容,并根据您要查找的内容使用LINQ过滤结果。
我在Sitecore中做了类似的事情,我调用了Sitecore.Security.Accounts.UserManager.GetUsers()
并通过其name属性过滤了生成的User
个对象。你可以做类似的事情:
var matches = UserManager.GetUsers().Where(usr => usr.Profile.Email.Equals(emailToMatch));