Обзор MSCRM 2011 beta SDK - Введение в REST

Русский

Пока пропущу один небольшой раздел из серии обзоров SDK и расскажу про REST.

Взаимодействие с Microsoft Dynamics CRM 4.0 на клиентской стороне сводилось к вызову XML Web-сервиса путём формирования в клиентском скрипте SOAP-запроса. Плюсом данной технологии является интероперабельность - возможность использования сервиса независимо от технологий и языков программирования. И это был единственный способ взаимодействия с системой на стороне клиента. Минусов куда как больше:

  • сложная структура запроса - формирование объёмного XML-запроса занятие кропотливое,
  • трудности парсинга (разбора) ответа, т.к. необходимы знания объектной модели документа (DOM), регулярных выражений и XQuery/XPath для извлечения требуемых данных,
  • нетривиальная обработка ошибок.

Для решения возникающих трудностей с вызовом XML Web-сервиса CRM различными командами были предложены обёртки, призванные облегчить эту задачу:

Реализация REST в CRM 2011

В Microsoft Dynamics CRM 2011 данные теперь доступны через конечную точку REST. REST (Representational State Transfer) - архитектурный подход, который подразумевает использование ресурсов через обращение по уникальному URI-пути. А это значит, что теперь достаточно обратиться GET-, POST-, MERGE-, DELETE- или PUT-запросом на определённый URI, чтобы извлечь данные из CRM, обновить, удалить или сохранить запись. Read more about Обзор MSCRM 2011 beta SDK - Введение в REST

Xrm.Page.context и функция GetGlobalContext

Русский

Продолжаю обзор SDK поставки Microsoft Dynamics CRM 2011 beta.

Объект Xrm.Page.context предоставляет доступ к текущему контексту страницы. С помощью него можно получить информацию об организации и текущем пользователе. Xrm.Page.context предоставляет доступ к следующим функциям:

  • getAuthenticationHeader - возвращает закодированное значение SOAP-заголовка необходимого для вызова Web-сервиса (формата CRM 4.0) из скрипта;
  • getOrgLcid - возвращает LCID - идентификатор культуры (локаль) текущей организации;
  • getOrgUniqueName - возвращает уникальное имя текущей организации;
  • getQueryStringParameters - возвращает массив GET-параметров текущего вызова;
  • getServerUrl - возвращает базовый URL CRM (при использовании офлайн с клиентом Outlook для CRM возвращает ссылку на локальный сервис);
  • getUserId - возвращает GUID текущего пользователя (отличная замена WhoAmI-запросам);
  • getUserLcid - возвращает LCID - идентификатор культуры (локаль) текущего пользователя;
  • getUserRoles - возвращает массив идентификаторов (GUID) ролей текущего пользователя.

Но что делать, если вы хотите использовать эти чрезвычайно полезные функции в клиентском коде своих приложений а не с форм CRM? Для этого достаточно подключить скрипт с функцией GetGlobalContext как описано ниже: Read more about Xrm.Page.context и функция GetGlobalContext

Утилита Find Privilege для определения недостающих привилегий при SecLib::CrmCheckPrivilege

Русский

Опять про SecLib::CrmCheckPrivilege. В некоторых случаях CRM всё-таки сообщает о проблемах с правами у пользователя. И был известный способ определения недостающих привилегий - простым запросом:

SELECT Name FROM Privilege WHERE PrivilegeId = 'ea8e9601-500e-4bd7-be73-022f3269e5b6'

Для тех кто не имеет доступ к Microsoft SQL Server Management Studio Mitch Milam написал небольшую утилиту - Find Privilege.

Find Privilege Tool Read more about Утилита Find Privilege для определения недостающих привилегий при SecLib::CrmCheckPrivilege

Метки:

Microsoft Dynamics CRM 2011 будет поддерживать только 64-битную архитектуру. А на каких серверах у вас развёрнута CRM 4.0?

Русский

Как WhoAmIRequest возвращал пользователя SYSTEM

Русский

Столкнулся на днях с интересной проблемой: несмотря на то, что в конфиге приложения выставлены необходимые настройки, запрос WhoAmIRequest всегда возвращал данные системного пользователя CRM - SYSTEM.

...
 <system.web>
    ...
    <authentication mode="Windows"/>
    <identity impersonate="true"/>
    ...
 </system.web>
 ...

Как оказалось, причина была в следующем - WhoAmIRequest выполнялся в методе DoTheJobInThread() в отдельном потоке: Read more about Как WhoAmIRequest возвращал пользователя SYSTEM

Уязвимость безопасности ASP.NET

Русский

Не так давно была найдена критическая уязвимость в ASP.NET всех версий. Об этом подробно написал Скотт Гатри в своём блоге (прочитать в переводе).

При помощи этой уязвимости злоумышленник может запрашивать и загружать с сервера файлы входящие в приложение ASP.NET такие как web.config (который часто содержит секретные данные), а также расшифровать данные посланные клиенту в зашифрованном состоянии (такие как данные ViewState на странице).

Данная уязвимость затрагивает и Microsoft Dynamics CRM, особенно IFD-проекты (Internet Facing Deployment). Read more about Уязвимость безопасности ASP.NET

Метки:

Microsoft Update для Microsoft Dynamics CRM 2011 и обновление CRM 2011 Beta SDK

Русский

Две небольших новости, связанных с обновлениями в Microsoft Dynamics CRM 2011 Beta.

Первая касается самого процесса обновления CRM. Теперь обновление будет осуществляться через сервис Microsoft Update.

Кстати, пока остаётся неясным процесс обновления серверной части компонентов Microsoft Dynamics CRM, т.к. в статье идёт речь только об обновлении клиентских компонентов (клиент для Outlook). Read more about Microsoft Update для Microsoft Dynamics CRM 2011 и обновление CRM 2011 Beta SDK

Обзор MSCRM 2011 beta SDK - Часть 1

Русский

На днях Microsoft опубликовала документацию для Microsoft Dynamics CRM 2011. Ознакомление с SDK поможет составить целостное представление об архитектуре системы и разобраться в её возможностях. Не буду переписывать содержимое SDK, а расскажу лишь о самых интересных на мой взгляд изменениях.

Итак, содержимое SDK:

  • CHM-файл - непосредственно документация,
  • директория bin с основными типами данных, описаны далее,
  • samplecode - примеры использования на C#,
  • schemas - XSD-схемы конфигурационных файлов,
  • tools - как всегда, утилита регистрации плагинов - pluginregistration и файл сопоставления "сущность - допустимая операция" - 'message-entity support for plug-ins.xlsx'
  • walkthroughs - примеры кастомизации в новом формате solution (!) с проектами для ribbon и workflow.
Read more about Обзор MSCRM 2011 beta SDK - Часть 1>

Метки:

Unable to load client print control

Русский

Думал уже не столкнусь с таким, ан нет. Понадобилось развернуть приложение (ASP.NET с отображением отчётов SQL Server Reporting Services 2008) на новом сервере, и опять получил "Unable to load client print control" при печати отчёта.

А всё дело в том, что в ранних версиях клиентского ActiveX-компонента для печати отчёта (RSClientPrint из состава SSRS) была обнаружена уязвимость. Для принудительного отключения таких компонентов Microsoft периодически выпускает обновления безопасности, включающие в себя так называемые kill bits - идентификаторы (CLSID) COM/ActiveX-компонентов, запуск которых запрещён в Windows. Read more about Unable to load client print control

Метки:

Kerberos DelegConfig или Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

Русский

Если вы внедряете Microsoft Dynamics CRM, то с уверенностью могу сказать, что уже сталкивались с керберос дабл хоп, ну, или обязательно с этим столкнётесь.

Что же это такое? Вкратце, это НЕвозможность транслировать от сервера к серверу ваши имперсонированные учётные данные (полученные от клиентской станции). В контексте CRM это часто встречается при обращении вашего ASP.NET приложения (которое хостится на application-сервере CRM) к SQL-серверу или серверу отчётов. Read more about Kerberos DelegConfig или Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

Метки:

Страницы

Subscribe to crrm.ru RSS