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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2013, 22:15   #1  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Прошу совета по IntertopPermission
Доброго времени суток. Хочу спросить у профессионалов как правильнее написать код. Имею к примеру следующий код (взял из хелпа):
X++:
void COMExample()
{
    COM               com;
    str               result;
    InteropPermission perm;
    ;
 
    // Set the code access permission to help protect the use of the
    // COM object.
    perm = new InteropPermission(InteropKind::ComInterop);
    if (perm == null)
    {
        return;
    }
    // Permission scope starts here.
    perm.assert();
 
    com = new COM("Scripting.FileSystemObject");
    if (com != null)
    {
        // BP deviation documented.
        result = com.GetFileName(@"c:\boot.ini");
    }
 
    // Close the code access permission scope.
    CodeAccessPermission::revertAssert();
}
В Хелпе вычитал следующие строки: "Certain APIs that ship with Microsoft Dynamics AX use Code Access Security. When these APIs are run on the server, a class derived from CodeAccessPermission must be used. This helps make the APIs more secure. When you upgrade from a previous version of Microsoft Dynamics AX, you must modify calls to these APIs to ensure that the code executes correctly."

А также: "If an attacker can control input to the new method, a security risk exists. Therefore, this method runs under Code Access Security. Calls to this method on the server require permission from the InteropPermission Class."

Вопрос: В цитатах выше указано, что при запуске объекта COM (API) на сервере нужно использовать класс InteropPermission. Итак, получение разрешение IntertopPermission следует прописывать только при использовании кода на сервере? Или лучше прописывать всегда? И в каком случае его вообще нужно и не нужно писать? Благодарю!
Старый 30.03.2013, 00:57   #2  
Кирилл
Гость
 
n/a
Цитата:
Сообщение от Cardagant Посмотреть сообщение
получение разрешение IntertopPermission следует прописывать только при использовании кода на сервере?
Да
Старый 30.03.2013, 16:14   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Cardagant Посмотреть сообщение
В цитатах выше указано, что при запуске объекта COM (API) на сервере нужно использовать класс InteropPermission. Итак, получение разрешение IntertopPermission следует прописывать только при использовании кода на сервере? Или лучше прописывать всегда?
Лучше запрашивать разрешения всегда, если заранее неизвестно, что код 100% будет выполняться только на клиенте. Очень бывает неприятно, когда давно используемый код пытаешься использовать в пакетном задании, и тут выясняется, что он неработоспособен из-за пренебрежения правилами работы с "опасными API".
Цитата:
Сообщение от Cardagant Посмотреть сообщение
И в каком случае его вообще нужно и не нужно писать?
Это подробно описано в документе Writing Secure X++ Code. См. также обсуждение в теме ошибка обращения к .NET сборке в режиме Server
За это сообщение автора поблагодарили: Cardagant (1).
Старый 31.03.2013, 21:47   #4  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Благодарю за ответы!
Теги
com-объект, interoppermission

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Прошу помочь студенту с домашним заданием missa1 DAX: Прочие вопросы 3 24.05.2008 16:46
Прошу совета по классам Tax* Buba DAX: Программирование 2 21.06.2006 14:40
Прошу разъяснить, какие процедуры и методы проходит система при открытии, закрытии. Кандидат DAX: Программирование 9 02.11.2005 14:34
Фильтр по enum-полю в select ArturK DAX: Программирование 18 30.03.2004 13:37
создание работающей формы Valia DAX: Программирование 4 20.08.2003 16:28

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

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

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