2010-12-29 32 views
5

Làm cách nào để gửi thông báo luồng công việc tới tất cả người dùng trong vai trò Sitecore? Ví dụ: bước tiếp theo trong quy trình làm việc là dành cho bộ phận Pháp lý phê duyệt hoặc từ chối. Làm thế nào tôi có thể đặt Sitecore gửi email cho tất cả người dùng trong vai trò Người phê duyệt pháp lý? Tôi đang cố gắng tránh duy trì danh sách phân phối và muốn lấy địa chỉ email của người dùng một cách linh hoạt.Gửi email cho tất cả người dùng trong một vai trò cụ thể từ quy trình làm việc của Sitecore

Trả lời

8

Bảo mật Sitecore dựa trên mô hình bảo mật ASP.NET. Do đó, bạn có thể sử dụng tiêu chuẩn ASP.NET API để có được những người dùng của một vai trò nhất định:

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

Và sau này lặp thông qua những người sử dụng tìm thấy và đọc tài sản 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 
} 

tôi có thể bị nhầm lẫn trong chi tiết cú pháp, nhưng tôi chắc chắn bạn có thể hiểu được ý tưởng chung.

+0

Những người dùng này có vai trò Sitecore. Làm cách nào để có được người dùng trong vai trò Sitecore? Tôi đã chỉnh sửa câu hỏi. –

+0

Hm, có vẻ như tôi đã không làm rõ điều này và câu hỏi của bạn không đề cập đến nó một cách rõ ràng - bạn đang sử dụng phiên bản Sitecore nào? –

+0

Ý tôi là, các phiên bản trước 6.0 có hệ thống bảo mật riêng và API có liên quan. Vì vậy, nếu bạn đang sử dụng 5.X, mẫu ở trên sẽ không hoạt động cho bạn ... Nếu không, nó sẽ hoạt động như đối với vai trò của Sitecore và người dùng thông qua API bảo mật tiêu chuẩn ASP.NET –

3

Để giải quyết tư cách thành viên gián tiếp, bạn có thể sử dụng Sitecore.Security.Accounts.RolesInRolesManager cũng trả về tài khoản người dùng là phần gián tiếp của vai trò được chỉ định.

RolesInRolesManager.GetUsersInRole(Role.FromName(roleName), true) 
Các vấn đề liên quan