|
![]() |
#1 |
Участник
|
Допилил немного 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 Есть какой-нибудь стандартный способ зашифровки передающегося параметра перед подобным редиректом ? Что порекомендуете? |
|
![]() |
#2 |
MCTS
|
|
|
![]() |
#3 |
Участник
|
Цитата:
Это не спасет: зная путь и имя файла, любой пользователь сможет его скачать. Нужно, чтобы пользователь и не подозревал, где именно на сервере лежит файл. В настройках сайта шифрование, разумеется, включено. Кажется, нашел метод шифрования конкретного параметра. Хак, конечно, но все же: добавляем в метод \Classes\WebSession\paramRequiresEncryption строчку X++: case 'WFNM': httр://vmax2009chmdev1:8080/sites/ax/_layouts/ep/downloaddocument.aspx?WFNM=8c1586207c7ab4f43e22154a96a38db51539556da84d3e740b3f9eae9bab756b00ae4ec95616acb6302bcd1fb1ff0c04c9bc7754ae5302f806488e97a1a00d372a1a13fc017c649294656e8016d1db95cb7749f3df4516bd&WCMP=cee&WCIV=634124027024790310 |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от 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 Есть какой-нибудь стандартный способ зашифровки передающегося параметра перед подобным редиректом ? Что порекомендуете? Подниму тему. Может вспомните, были ли какие то проблемы при модификации вэблета? Сделал так же как вы, но либо изменения в классе не "видятся" либо параметр не передается, в общем открывается пустая страница, файл не отдается. |
|
![]() |
#5 |
Участник
|
Мы делаем так
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 |
|
|