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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.01.2011, 15:09   #1  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
? Запрет копирования данных из AX
Возникло желание ограничить копирование данных с форм посредством CTRL+C / CTRL+V - в первую очередь хочется заблокировать копирование данных "ценных" справочников типа "Клиенты". Быстрый поиск по форуму ответа не дал. Кто-нибудь решал такую задачу?
__________________
Ivanhoe as is..
Старый 24.01.2011, 15:25   #2  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Копирование по Ctrl+C можно попробовать запретить через метод task() формы.

X++:
public int task(int _taskId)
{
    int ret;

    if (_taskId != 771)
        ret = super(_taskId);

    return ret;
}
__________________
Dynamics AX Experience
Старый 24.01.2011, 15:26   #3  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,700 / 405 (17) +++++++
Регистрация: 23.03.2006
если все контролы сделать enabled(false), то скопировать не получится, или перекрывайте task(). только не забудте ctrl + Ins и копирование мышкой. еще есть кнопка выгрузить в Excel

Последний раз редактировалось ice; 24.01.2011 в 15:31.
Старый 24.01.2011, 15:46   #5  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,700 / 405 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от Vals Посмотреть сообщение
+ Автоотчёт
+ Стандартные репорты и их сохранение.
+ Цифрофотик с экрана
ага, имхо такие задачи решаются административным путем и ограничением доступа
Старый 24.01.2011, 15:51   #6  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 423 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Закрыть копирование - не достаточно.

Запретить придется не только копирование, но и ряд других возможностей
- автоотчет
- предварительный просмотр
- экспорт в ексель

Кроме того если вы закроете копирование совсем - пользователи будут серьезно возмущаться, так как часто копируют не весь справочник, а отдельные поля справочника клиентов (код клиента или адрес например).

Закрыть копирование сразу всего - не гуманно.

Лучше проверить сколько записей выделенно в данный момент в гриде - это не сложно, например так

X++:
client static boolean isSingleRecordSelected(FormDataSource _formDataSource)
{
    common record;
    ;

    if (!_formDataSource)
        return false;

    record = _formDataSource.getFirst(true);

    if (!record)
        return true;

    return false;
}
И если выбрано более одной строки - запрещать копирование. В противном случае копирование должно работать.

Я написал такой статичный метод

X++:
static client void checkAccessTaskCopy(int _taskId, FormDataSource _formDataSource, FormName _formName)
{
    #define.taskSend(310)
    #define.taskPreView(299)
    #define.taskAutoReport(278)
    #define.taskCopy(771)
    #define.taskExport2Excel(4436)
    #define.taskFilterByField(2843)
    ;
    if (_taskId == #taskAutoReport || _taskId == #taskCopy || _taskId == #taskExport2Excel || _taskId == #taskPreView || _taskId == #taskSend)
    {
        if (isSingleRecordSelected(_formDataSource) == false || _taskId != #taskCopy)
        {
            if ("Дополнительная проверка прав" == false)
                throw error("Нет прав");
        }
    }
}
А на форме, например CustTable (в любой форме можно вставить такую проверку, нужно лишь заменить имя источника данных)

X++:
public int task(int _taskId)
{
    int ret;
    #task
    ;
    // -->
    Global::checkAccessTaskCopy(_taskId, CustTable_ds, element.name());
    // <--

    // If Control+N and datasource is not CustTable then call create on CustTable
    if  (_taskId == #taskNew && (confind(skipCreateDataSources,this.dataSource().id()) || !custTable))
    {
        custTable_ds.create();
        ret = 1;
    }
    else
    {
        ret = super(_taskId);
    }

    return ret;
}
За это сообщение автора поблагодарили: Ivanhoe (3).
Старый 24.01.2011, 15:55   #7  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Коллеги, понятно, что есть обходные пути Спасибо, буду проверять примеры.
__________________
Ivanhoe as is..
Старый 24.01.2011, 18:16   #8  
Кирилл Егоров is offline
Кирилл Егоров
Участник
 
123 / 43 (2) +++
Регистрация: 11.11.2005
Всегда можно сделать скриншот и засунуть его в FineReader.
Старый 24.01.2011, 20:13   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А еще можно учить по 10 клиентов в день и за какой-то период весь справочник вынести в голове. Но конкретный автор "хотелки" предпочитает перекрывать доступ хоть по чуть-чуть. Конечно, это не единственное мероприятие. И понятно, что на промышленных шпионов это не рассчитано =)
__________________
Ivanhoe as is..
Старый 24.01.2011, 21:19   #10  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 423 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от Кирилл Егоров Посмотреть сообщение
Всегда можно сделать скриншот и засунуть его в FineReader.
Хотите попробовать сколько у вас уйдет времени чтобы перенести таким образом клиентский справочник из 100 000 тыс записей ?

Учитывая что в самом "гриде" данных не достаточно, придется "пройтись" еще и по закладкам формы.

У вас среди пользователей много людей, способных написать для этого необходимый скрипт, или применить какой то сторонний ?

Понятно, что это не абсолютная защита. Но можно и через админов доступ получить... И еще 100 способов. Но все это будет гораздо сложнее...

Последний раз редактировалось someOne; 24.01.2011 в 21:22.
Старый 24.01.2011, 23:26   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Возникло желание ограничить копирование данных с форм посредством CTRL+C / CTRL+V - в первую очередь хочется заблокировать копирование данных "ценных" справочников типа "Клиенты".
Утопия... все, что вы выдадите клиенту в виде трафика от АОСа, уже "в общем доступе".
Цитата:
Сообщение от Кирилл Егоров Посмотреть сообщение
Всегда можно сделать скриншот и засунуть его в FineReader.
Не надо ничего совать в FineReader - у такой программы для снятия скриншотов, как HyperSnap, давно есть функция выуживания текста из всех контролов, попавших в скриншот - виндовое сообщение WM_GETTEXT еще никто не отменял. Остальное - дело техники: поставить самый мелкий шрифт, вынести на грид все поля, какие только доступны, как вариант, запустить клиента в терминальной сессии с максимально доступным разрешением (которое может быть больше физического разрешения монитора) - и вперед. В упомянутой программе еще горячие клавиши удобно настраиваются - остается только постранично листать грид... И это лишь один из вариантов, сходу пришедших на ум.

PS. "Паранойя - профессиональное заболевание специалистов по безопасности, но любители могут в этой области зайти гораздо дальше". Не надо заниматься безопасностью "по чуть-чуть" и "по наитию" - если хотите себя обезопасить, сперва создайте модели нарушителей - от кого именно вы хотите себя (свою информацию) обезопасить, какими возможностями они могут обладать. Тогда и конкретные меры станут очевиднее. А "наугад" тут закрыть, там запретить - только добропорядочным пользователям жизнь усложните, и спасибо они вам не скажут.

Последний раз редактировалось gl00mie; 24.01.2011 в 23:35. Причина: дополнение
За это сообщение автора поблагодарили: Damn (2), Кирилл Егоров (1).
Старый 25.01.2011, 00:29   #12  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,286 / 3494 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
С другими целями, но стояла та же задача. Выяснилось - что пользователи, которые заходят в АХ по терминалке через интернет - весьма регулярно пользуются буфером обмена чтобы скачать "себе на локал" данные, сделать поиск по ним в Excel, после чего - уже найти нужные записи в АХ.
Собственно, изначально стояла задача типа "Откуда трафик?". Путем всяческих анализов и опросов подозреваемых нарисовалась картина.

В силу того, что пользователи работали через терминалку - решили проблему на уровне запрета буфера обмена в терминалке, чем несказанно "обрадовали" суппортящих сотрудников. Постепенно все привыкли.

Так что если пользователи работают через терминалку - то можно легким движением мышки решить эту проблему.
__________________
Возможно сделать все. Вопрос времени
Теги
законченный пример, защита информации, копирование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamics-ax: Official Details about Dynamics AX '6' released, including comments from Microsofts Kees Hertogh Blog bot DAX Blogs 0 11.01.2011 05:22
semanticax: Dynamics AX 2009 Installation - Application Blog bot DAX Blogs 0 22.12.2010 08:11
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Data upgrade AX 3.0 SP6 -> AX 4.0 SP2: Ошибка запуска AOS поcле копирования данных dacom DAX: Администрирование 7 21.04.2008 15:03

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:58.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.