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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.06.2010, 19:23   #1  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Допилил немного EPDocuGetWebLet. Передаю ему имя файла из X++:
X++:
    menuFunction = new WebUrlMenuFunction(weburlitemstr(EPDocuGet));
    weblink = new WebLink();
    webLink.menufunction(menuFunction);
    weblink.addOrUpdateExtraParam("filename", filename);
    webSession().redirect(webLink);

В веблете его использую:
X++:
webSession.getParm("filename")

Файл отдается пользователю. Но это никуда не годится, потому что в веблет параметры передаются в открытом виде:
httр://EnterprisePortalSite/ax/_layouts/ep/downloaddocument.aspx?filename=C:\Windows\TEMP\tmp13AB.tmp&WCMP=cee&WCIV=634123832942290973

Есть какой-нибудь стандартный способ зашифровки передающегося параметра перед подобным редиректом ? Что порекомендуете?
Старый 17.06.2010, 23:06   #2  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Hyper Посмотреть сообщение
Есть какой-нибудь стандартный способ зашифровки передающегося параметра перед подобным редиректом ? Что порекомендуете?
Включение стандартного шифрования в настройках EP, например?
Старый 18.06.2010, 00:25   #3  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от glibs Посмотреть сообщение
Может просто ограничить права доступа для учетной записи, под которой работает бизнес-коннектор?

Это не спасет: зная путь и имя файла, любой пользователь сможет его скачать. Нужно, чтобы пользователь и не подозревал, где именно на сервере лежит файл.
Цитата:
Сообщение от alex55 Посмотреть сообщение
Включение стандартного шифрования в настройках EP, например?

В настройках сайта шифрование, разумеется, включено.

Кажется, нашел метод шифрования конкретного параметра. Хак, конечно, но все же: добавляем в метод \Classes\WebSession\paramRequiresEncryption строчку
X++:
            case 'WFNM':
- и золотой ключик у нас в кармане. Линк с параметром WFNM теперь выглядит так:
httр://vmax2009chmdev1:8080/sites/ax/_layouts/ep/downloaddocument.aspx?WFNM=8c1586207c7ab4f43e22154a96a38db51539556da84d3e740b3f9eae9bab756b00ae4ec95616acb6302bcd1fb1ff0c04c9bc7754ae5302f806488e97a1a00d372a1a13fc017c649294656e8016d1db95cb7749f3df4516bd&WCMP=cee&WCIV=634124027024790310
Старый 05.11.2014, 08:43   #4  
jonny is offline
jonny
Участник
Аватар для jonny
Самостоятельные клиенты AX
 
217 / 124 (5) +++++
Регистрация: 10.02.2006
Адрес: СПб-Екб-?
Цитата:
Сообщение от Hyper Посмотреть сообщение
Допилил немного EPDocuGetWebLet. Передаю ему имя файла из X++:
X++:
    menuFunction = new WebUrlMenuFunction(weburlitemstr(EPDocuGet));
    weblink = new WebLink();
    webLink.menufunction(menuFunction);
    weblink.addOrUpdateExtraParam("filename", filename);
    webSession().redirect(webLink);
В веблете его использую:
X++:
webSession.getParm("filename")
Файл отдается пользователю. Но это никуда не годится, потому что в веблет параметры передаются в открытом виде:
httр://EnterprisePortalSite/ax/_layouts/ep/downloaddocument.aspx?filename=C:\Windows\TEMP\tmp13AB.tmp&WCMP=cee&WCIV=634123832942290973

Есть какой-нибудь стандартный способ зашифровки передающегося параметра перед подобным редиректом ? Что порекомендуете?

Подниму тему. Может вспомните, были ли какие то проблемы при модификации вэблета? Сделал так же как вы, но либо изменения в классе не "видятся" либо параметр не передается, в общем открывается пустая страница, файл не отдается.
Старый 06.11.2014, 10:55   #5  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Мы делаем так
C:\Windows\TEMP - или любую другую папку зашили в параметры портала в Ах
Строку для скачивания переделываем в httр://EnterprisePortalSite/ax/_layouts/ep/downloaddocument.aspx?filename=tmp13AB.tmp&WCMP=cee&WCIV=634123832942290973 (расширение можно убрать)

Дальше в EPDocuGet.run смотрим параметр filename: webSession.getParm("filename") != ''
Собираем путь к файлу C:\Windows\TEMP\ + webSession.getParm("filename") и передаем в метод, EPDocuGet::runDocument который надо переписать под свои нужды.

Этот способ уже обсуждался на форуме, только не смог быстро найти тему
Теги
enterprise portal

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AxUpdatePortal.exe does not update Enterprise Portal when not running from an elevated command prompt Blog bot DAX Blogs 0 26.07.2009 15:07
Solutions Monkey: Microsoft Dynamics AX 2009 Enterprise Portal / Role Centers - Deployment Tips-n-Tricks – 3 Blog bot DAX Blogs 0 27.10.2008 08:05
Solutions Monkey: Enterprise Portal Screencasts at Channel9.msdn.com Blog bot DAX Blogs 6 01.07.2008 19:38
jinx: Microsoft Dynamics AX 2009 Enterprise Portal Entwicklung Samples Blog bot DAX auf Deutsch 0 27.06.2008 04:06
JOPX: Integrating MOSS 2007 and Dynamics AX Part II - installing and configuring Dynamics AX Enterprise Portal Blog bot DAX Blogs 0 02.03.2008 06:42

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

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

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