2010-12-29 4 views
5

Sitecore rolündeki tüm kullanıcılara iş akışı bildirimlerini nasıl gönderebilirim? Örneğin, iş akışındaki bir sonraki adım, Hukuk departmanının onaylaması veya reddetmesidir. Sitecore’u, Yasal Onaylama rolündeki tüm kullanıcılara e-posta göndermesini nasıl sağlayabilirim? Bir dağıtım listesi tutmamaya çalışıyorum ve kullanıcıların e-posta adreslerini dinamik olarak almak istiyorum.Tüm Kullanıcıları Sitecore'dan Özel E-postalara E-postayla Gönderme İş Akışı

cevap

8

Sitecore güvenliği, ASP.NET güvenlik modelini temel alır. Dolayısıyla, belirli bir rolün kullanıcılarını elde etmek üzere standart ASP.NET API kullanabilirsiniz:

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

Ve daha sonra yineleme bulunan kullanıcılar üzerinden ve E-posta özelliği okuyun: Ben yanlış olabilir

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 
} 

sözdizimi ayrıntıları, ama eminim genel fikri bilerek anlayabilirsiniz.

+0

Bu kullanıcılar Sitecore görevlerinde. Kullanıcıları Sitecore rollerinde nasıl alabilirim? Soruyu düzenledim. –

+0

Hm, açıklığa kavuşmuş gibi görünmüyor ve sorunuz açıkça belirtmiyor - Sitecore'un hangi sürümünü kullanıyorsunuz? –

+0

Yani, 6.0'dan önceki sürümlerin kendi güvenlik sistemi ve ilgili API'si vardı. Yani, 5.X kullanıyorsanız, yukarıdaki örnek sizin için çalışmayacaktır ... Aksi takdirde, standart ASP.NET güvenlik API'si aracılığıyla Sitecore rolleri ve kullanıcıları için çalışmalıdır –

3

Dolaylı üyeliği çözmek için, belirtilen rolün dolaylı parçası olan kullanıcı hesaplarını da döndüren Sitecore.Security.Accounts.RolesInRolesManager'u kullanabilirsiniz.

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