2011-12-20 11 views
1

高速クエリまたはクエリを使用して電子メールまたはカスタムフィールドでユーザーを取得する方法はありますか?これを試しましたが、クエリツールでは機能しませんでした。ユーザーのSitecoreクエリ/高速クエリ

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

+0

「ユーザー」とは、ユーザーマネージャを経由して取得した、コアDBに格納されている実際のSitecoreユーザーを意味しますか、カスタムテンプレートを意味しますかツリーの新しい部分( '/ sitecore/user')で作成されましたか? –

+0

私は、ユーザーマネージャを使用してサイトにアクセスできるユーザーを意味します。 – Gabbar

答えて

10

ユーザーマネージャのユーザーは、アイテムではないためクエリできません。実際には、コアデータベースのASP.NETメンバーシップ上に構築されています。代わりに、Membership.GetAllUsers()MSDN doc)のようなものを調べ、探しているものに基づいてLINQで結果をフィルタリングすることができます。

私はSitecore.Security.Accounts.UserManager.GetUsers()と呼ばれるSitecoreで同様のことをして、結果のUserオブジェクトをnameプロパティでフィルタリングしました。

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

これは私が探していたものです。ありがとう – Gabbar

+0

また、本当にその1つが必要です - ありがとう!!!! :) –

関連する問題