AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.07.2011, 08:48   #1  
lode is offline
lode
Участник
Аватар для lode
 
37 / 12 (1) ++
Регистрация: 23.03.2009
Адрес: Россия, Екатеринбург
Получение информации о сущности через IMetadataService
Здравствуйте, есть такой плагин http://crmaudit.codeplex.com/. Замечательно подходит для аудита, но есть одна проблема. В коде:
Код:
            // Get a reference to the CRM Web Service & metadata service
            ICrmService crmService = (ICrmService)context.CreateCrmService(true);
            IMetadataService metaData = context.CreateMetadataService(true);

            // Get the metadata about the current entity.
            RetrieveEntityRequest req = new RetrieveEntityRequest();
            req.EntityItems = Microsoft.Crm.Sdk.Metadata.EntityItems.IncludeAttributes;
            req.LogicalName = context.PrimaryEntityName;
            RetrieveEntityResponse res = (RetrieveEntityResponse)metaData.Execute(req);
на последней строке вылетает с ошибкой в трассе "Crm Exception: Message: SecLib::CheckPrivilege failed" для всех, кто не обладает ролью Системного администратора. Пользователь может просматривать/создавать/удалять свои записи через интерфейс CRM.
Погуглив, нашел нечто похожее (спасибо Сливке) http://mmcrm.ru/?p=1303, но не совсем понял в какой сущности не хватает разрешений (имя разрешения prvReadEntity).
Или же это вообще какое-то стандартное разрешение на получение метаданных об объекте?
Старый 12.07.2011, 09:49   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Попробуйте поправить плагин так:

X++:
            ICrmService crmService = (ICrmService)context.CreateCrmService(false);
            IMetadataService metaData = context.CreateMetadataService(false);
Только для меня загадка зачем результат CreateCrmService приводить к ICrmService, потому как то же самое возвращает и метод. Ох уж эти "индо"-разработчики.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: lode (1).
Старый 12.07.2011, 10:21   #3  
lode is offline
lode
Участник
Аватар для lode
 
37 / 12 (1) ++
Регистрация: 23.03.2009
Адрес: Россия, Екатеринбург
про "индийский" согласен, без доработки "напильником" этот плагин не работает
Теги
checkprivilege, imetadataservice, metadata

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема при создании сущности Incident через веб-сервис Казарин Александр Dynamics CRM: Разработка 4 22.04.2010 14:51
Получение данных из CRM 4.0 через web service в стороннем приложении datfi Dynamics CRM: Разработка 3 18.10.2009 20:31
Как создать экземпляр кастомной сущности через SOAP? Tony Green Dynamics CRM: Разработка 7 27.02.2009 08:37
Получение свойств сущности DinDim Dynamics CRM: Разработка 3 06.02.2009 18:58
Обновление поля во внешней сущности через JScript Sergio_che Dynamics CRM: Разработка 4 06.06.2008 23:44

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:45.