通过Sitecore工作流向特定角色的所有用户发送电子邮件

时间:2010-12-29 14:22:33

标签: workflow sitecore

如何向Sitecore角色中的所有用户发送工作流通知?例如,工作流程的下一步是法律部门批准或拒绝。如何使Sitecore向Legal Approver角色中的所有用户发送电子邮件?我试图避免维护一个分发列表,并希望动态地获取用户的电子邮件地址。

2 个答案:

答案 0 :(得分:8)

Sitecore安全性基于ASP.NET安全模型。因此,您可以使用标准ASP.NET API来获取特定角色的用户:

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

稍后迭代找到的用户并阅读Email属性:

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
}

我可能在语法细节上有误,但我确信你可以通过了解一般的想法来弄明白。

答案 1 :(得分:3)

要解决间接成员资格,您可以使用Sitecore.Security.Accounts.RolesInRolesManager,它还会返回与指定角色间接成员的用户帐户。

RolesInRolesManager.GetUsersInRole(Role.FromName(roleName), true)