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