Показать сообщение отдельно
Старый 07.01.2012, 15:41   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от 2rik Посмотреть сообщение
Господа, подскажите пожалуйста
Столкнулся с такой проблемой.
Есть объект звонок, при его сохранении создается объект кастомной сущности, прав на чтение и создание которой у данного пользователя не должно быть.
Можно ли заставить плагин работать из под админа?

В Plugin Registration Tool - выбираю в поле Run in User Context админа, но все равно не срабатывает, выдает ошибку.

Подскажите, как можно это обойти ?

Заранее благодарен


Пробовал поступить через

IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));

string t = "73E3BB87-55B3-E011-9B86-00155D053B37"; - айдишник админа
Guid CallUserId=Guid.Parse(t);

_serviceProxy.CallerId = CallUserId;
_service = serviceFactory.CreateOrganizationService(context.UserId); //(context.UserId);
orgContext = new OrganizationServiceContext(_service);

ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

Но плагин не отрабатывает вообще. object reference not set to an instance of an object
Где в коде определяется переменная _serviceProxy? Зачем создается CallUserId, если OrganizationService вы создаете при помощи context.UserId?
Guid можно создавать через конструкцию
Код:
Guid CallUserId = new Guid("73E3BB87-55B3-E011-9B86-00155D053B37");
Я думаю, вам просто нужно прочить в SDK как правильно отлаживать плагины. Выбор контекста администратора при регистрации плагина должен работать как надо. Ошибка в где-то в вашем коде.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional