2011-12-20 2 views
1

Есть ли способ использовать быстрый запрос или запрос, чтобы получить пользователя по электронной почте или в настраиваемом поле? Я пробовал это, но он не работал в Инструменте запросовЗапрос Sitecore/быстрый запрос для пользователя

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

+0

Когда вы говорите «пользователь», вы имеете в виду фактических пользователей Sitecore, которые вы получаете через диспетчер пользователей, хранящихся в базовой БД, или вы имеете в виду пользовательский шаблон, который вы 'Создана в новой части дерева ('/ sitecore/user')? –

+0

Я имею в виду, что пользователи sitecore могут быть доступны с помощью User Manager. – Gabbar

ответ

10

Вы не можете запрашивать (через Sitecore Query или Fast Query) пользователей в Менеджере пользователей, потому что они не являются элементами, они фактически построены на членстве ASP.NET в базе данных Core. Вместо этого вы можете посмотреть что-то вроде 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

+0

Также очень нужен тот один - спасибо !!!! :) –

Смежные вопросы