Отправка электронной почты всем пользователям в определенной роли из рабочего процесса Sitecore - PullRequest
6 голосов
/ 29 декабря 2010

Как я могу отправлять уведомления о рабочих процессах всем пользователям в роли Sitecore? Например, следующим шагом в рабочем процессе является утверждение или отклонение юридическим отделом. Как я могу заставить Sitecore отправлять электронные письма всем пользователям с правовым статусом? Я стараюсь не поддерживать список рассылки и хотел бы динамически получать адреса электронной почты пользователей.

Ответы [ 2 ]

8 голосов
/ 29 декабря 2010

Безопасность 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
}

Iможет быть ошибочным в деталях синтаксиса, но я уверен, что вы можете понять это, зная общую идею.

3 голосов
/ 12 декабря 2011

Для разрешения косвенного членства вы можете использовать Sitecore.Security.Accounts.RolesInRolesManager, который также возвращает учетные записи пользователей, которые являются косвенной частью указанной роли.

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