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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.02.2019, 12:04   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Не совсем понятно, почему Action не защищен от пользователей?
Потому что вызвать его может любой пользователь. Защита основана только на том, что пользователь не знает ключей настроек.

По поводу сущностей, есть одна проблема. Давай всем пользователям доступ к сущности настроек - это значит любой пользователь через расширенный поиск или импорт сможет все посмотреть.
Если права на чтение будут только у админа, значит для каждого шага плагина, который использует настройки нужно указывать этого пользователя в Run in user's context, чтобы от имени этого пользователя можно было обратиться к настройкам. А значение этого поля при переносе со среды на среду может слетать.
__________________
Моё: Cайт - Код - Dynamics365 Tools
Старый 07.02.2019, 15:59   #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
Цитата:
Сообщение от ZooY Посмотреть сообщение
Потому что вызвать его может любой пользователь. Защита основана только на том, что пользователь не знает ключей настроек.

По поводу сущностей, есть одна проблема. Давай всем пользователям доступ к сущности настроек - это значит любой пользователь через расширенный поиск или импорт сможет все посмотреть.
Если права на чтение будут только у админа, значит для каждого шага плагина, который использует настройки нужно указывать этого пользователя в Run in user's context, чтобы от имени этого пользователя можно было обратиться к настройкам. А значение этого поля при переносе со среды на среду может слетать.
При инстанциации сервиса в коде плагина у вас есть 2 варианта - передавать гуид пользователя или нет. Если передаете - то сервис инстанциируется с правами пользователя. А вот если в метод не передано ничего у вас по сути сервис с админскими правами - доступайтесь до чего надо. Так что ваша "проблема" доступа к настроечной сущости решается именно таким образом:
1. Все настройки хранятся в кастономной сущности (одна запись и много полей или много записей типа пара ключ/значение - на ваше усмотрение).
2. У обычных пользователей нет прав на зачитку этих сущностей.
3. В коде плагинов при помощи подхода, указанного ранее, получаете доступ к настройкам вне зависимости от того, кто вызвал запуск плагина - простой юзер или юзер с доступом к настройкам.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 07.02.2019, 16:22   #3  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Цитата:
Сообщение от a33ik Посмотреть сообщение
При инстанциации сервиса в коде плагина у вас есть 2 варианта - передавать гуид пользователя или нет. Если передаете - то сервис инстанциируется с правами пользователя. А вот если в метод не передано ничего у вас по сути сервис с админскими правами - доступайтесь до чего надо.
Да, но нет... %)
Если пользователь не указан явно, то подставляется Calling User, т.е. в контексте плагина свойства UserId и InitiatingUserId равны и ссылаются на конченого пользователя (прав на чтение настроек у которого нет). Это логично с точки зрения безопасности, но создает проблему в случае с настройками.

В принципе, нет проблемы указать привилегированного пользователя при настройках шага плагина, но проблема в том, что порой эта настройка не переноситься при переносе плагина решением. Возможно дело в каких то отличиях в именовании пользователя и возможно этот момент можно отладить.
__________________
Моё: Cайт - Код - Dynamics365 Tools
Старый 07.02.2019, 16:46   #4  
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
Читаем внимательно это - https://docs.microsoft.com/en-us/dot...s-general-ce-9

А именно, цитирую:
Код:
When called in a plug-in, a null value indicates the SYSTEM user
Т.е. ничего указывать и не надо. Просто специальным образом используйте код.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: ZooY (1).
Теги
plug-in, settings

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Инстанциирование плагинов в CRM 2013 ZooY Dynamics CRM: Разработка 1 08.07.2015 17:36
Отображение ошибок плагинов vasya-serega Dynamics CRM: Разработка 3 30.01.2014 16:48
Не работает публикация настроек crmexpert Dynamics CRM: Разработка 3 15.12.2010 21:14
Хранение истории изменения нормативной стоимости продуктов Elka Dynamics CRM: Разработка 3 15.05.2009 17:10
восстановление настроек CRM'а kras Dynamics CRM: Администрирование 12 05.04.2006 12:48

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

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

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