2013-10-25 22 views
5

Tôi đang viết plugin MS Dynamics CRM 2011 đang thực hiện thao tác với dữ liệu thay mặt người dùng hệ thống: thay đổi trạng thái theo cách bắt buộc, điền thông tin quản trị, v.v.MS CRM plugin mạo danh người dùng sai

I đang sử dụng đoạn mã sau để có được OrganizationService chạy trên thay mặt cho SYSTEM:

IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); 
IOrganizationService service = factory.CreateOrganizationService(null); 

Và trên môi trường phát triển tất cả mọi thứ đang chạy trơn tru, nhưng khi tôi triển khai lắp ráp trên dàn dựng môi trường, đối với một số lý do mã này không hoạt động nữa. Hệ thống đã chọn một người dùng, hãy gọi cho anh ấy John Doe và điều hành các hành động thay mặt anh ấy.

Tôi không thể hiểu tại sao điều này có thể xảy ra: cả hai môi trường ít nhiều giống nhau, sự khác biệt duy nhất là IFD được sử dụng trên dàn dựng.

Có thể tắt người dùng SYSTEM ở đâu đó trong MS CRM không? Nếu có, tôi có thể tìm thấy cài đặt này ở đâu? Tôi nên kiểm tra những gì khác để giải quyết vấn đề này?

+0

Người dùng 'SYSTEM' và' INTEGRATION' luôn bị CRM vô hiệu hóa nhưng tính năng mạo danh vẫn hoạt động. Nếu bạn hiển thị một chế độ xem chưa được lọc của người dùng, thì 'SYSTEM' và' INTEGRATION' có được hiển thị không? –

Trả lời

3

Cách thức mà bạn tạo ra một đối tượng IOrganizationService là đúng

Tham số 'null' về chức năng CreateOrganizationService chỉ ra rằng một dịch vụ sẽ được tạo ra cho các tài khoản SYSTEM. Việc lấy và tạo sẽ được thực hiện bởi tài khoản SYSTEM. Không cần mạo danh thêm nữa.

Để biết thêm thông tin, hãy xem MSDN.

Plugin có được đăng ký giống như trong cả hai môi trường không? Trong PluginRegistrationTool, bạn có thể chọn một người dùng khác mà plugin đang chạy. Bạn đã chọn gì ở đó?

Bạn không thể tắt người dùng hệ thống, người dùng bị tắt mặc định. Quy trình hệ thống sẽ sử dụng tài khoản.

Các vấn đề liên quan