2010-12-29 10 views
5

Sitecoreロールのすべてのユーザーにワークフロー通知を送信するにはどうすればよいですか?たとえば、ワークフローの次のステップは、法務部門が承認または拒否することです。法的承認者の役割ですべてのユーザーに電子メールを送信するにはどうすればよいですか?私は配布リストを維持することを避けようとしており、ユーザーの電子メールアドレスを動的に取得したいと考えています。Sitecoreワークフローの特定の役割を持つすべてのユーザーに電子メールを送信

答えて

8

Sitecoreセキュリティは、ASP.NETセキュリティモデルに基づいています。したがって、あなたが特定の役割のユーザーが取得するために、標準のASP.NET APIを使用することができます。見つかったユーザーを反復処理上の

var users = System.Web.Security.Roles.GetUsersInRole("yourdomain\yourrole"); 

以降をし、電子メールのプロパティ読み:

foreach (var user in users) 
{ 
    var membershipUser = System.Web.Security.Membership.GetUser(user); 
    var email = membershipUser.Email; 
    // use this email to send the message to that user 
} 

を私はで誤解される可能性があります構文の詳細は、私はあなたが一般的なアイデアを知っていることを理解することができると確信しています。

+0

これらのユーザーは、Sitecoreの役割を果たしています。 Sitecoreの役割でユーザーを取得するにはどうすればよいですか?私はその質問を編集した。 –

+0

ええと、それは私がこれを明確にしていないようだとあなたの質問は明示的に言及していない - どのバージョンのSitecoreを使用していますか? –

+0

つまり、6.0より前のバージョンには、独自のセキュリティシステムと関連APIがありました。 5.Xを使用している場合、上記のサンプルはあなたのためには機能しません。それ以外の場合は、標準のASP.NETセキュリティAPIでSitecoreの役割とユーザーと同じように動作します。 –

3

間接メンバーシップを解決するには、Sitecore.Security.Accounts.RolesInRolesManagerを使用して、指定したロールの間接的な部分であるユーザーアカウントも返すことができます。

RolesInRolesManager.GetUsersInRole(Role.FromName(roleName), true) 
関連する問題