|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.11.2015, 14:19 | #1 |
Регистрация: 18.11.2015
Сообщений: 8
|
Доступ к локальным файлам в WebBrowser из JS
Приветствую.
Имеется JS-приложение, которое необходимо запустить во встроенном в WF компоненте. К сожалению, кроме WebBrowser ничего использовать нельзя (иначе был бы CefSharp). После настройки Localmachine_Lockdown в реестре приложение запускается, однако, невозможно получить доступ к файлам через AJAX (например, достать данные из файла JSON или загрузить AMD-компонент). Компонент (W10, mshtml v11, Trident) выдает ошибку 2147024891 "Access Denied". Вероятно, необходимо настроить WebBrowser через CoInternetSetFeatureEnabled, какие именно необходимы ключи, чтобы разрешить доступ к локальным файлам? Вот текущий список опций: PHP код:
Через CoInternetSetFeatureEnabled настроены следующие опции: PHP код:
Последний раз редактировалось Taeranos; 18.11.2015 в 14:23. |
18.11.2015, 14:30 | #2 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Цитата:
|
|
18.11.2015, 14:43 | #3 | |
Регистрация: 18.11.2015
Сообщений: 8
|
Цитата:
Желаемое поведение доступно, например, в Хроме (флаг --allow-file-access-from-files). |
|
18.11.2015, 14:46 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Может быть это поможет? https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Я в какой-то похожей ситуации использовал (дописать <!-- saved from url=(0016)http://localhost --> в начало HTML файла)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
18.11.2015, 14:54 | #5 | |
Регистрация: 18.11.2015
Сообщений: 8
|
Цитата:
|
|
18.11.2015, 15:26 | #6 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
А как вы получаете доступ к файлам?
|
18.11.2015, 15:34 | #7 |
Регистрация: 18.11.2015
Сообщений: 8
|
|
20.11.2015, 13:41 | #8 |
Регистрация: 18.11.2015
Сообщений: 8
|
В общем, в WebBrowser на десятой Windows нереально обойти политику блокировки, не помогли MotW, внесение в реестр необходимых FEATURES, подключение их для текущего процесса/приложения, изменение локальных политик безопасности, настроек безопасности и зон в Internet Explorer.
Потому было принято решение обойти саму проблему - если нельзя загружать модули через require.js, нельзя получать json-конфиги через $.ajax, то мы вообще не будем это делать. Все приложение собирается grunt'ом в 1-3 файла, json-конфиги и языковые файлы были вынесены в отдельные WCF-сервисы, доступ к которым осуществляется так же, как и к обычным дата-сервисам в этом приложениее (через windows.external байндинг объекта "ObjectForScripting"). Конечно, пришлось немного изменить загрузчик JS-приложения, чтобы он получал конфиги и языки так же, как и остальные данные (это все равно планировалось сделать позже). Понятно, что это не позволяет подгружать компоненты "на лету", но в случае встроенного приложения это и не нужно - все файлы уже есть на диске. Так что онлайн-версия приложения билдится, как и раньше, по модулям, которые ассинхронно подгружаются по мере надобности, а встроенная версия собирается в 1 файл, который можно разместить в dll ресурсом и и передать в WebBrowser одной строкой, таким образом решив вопрос с деплоем. Спасибо за участие! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сетевой доступ к файлам | Sm1Le | Работа с сетью в Delphi | 3 | 21.10.2011 15:23 |
Поисковик по локальным файлам | Vinnipux | JavaScript, Ajax | 2 | 01.11.2010 21:56 |
Доступ к файлам | Gerzs | Общие вопросы Delphi | 10 | 09.10.2009 21:21 |
Доступ к файлам | za4ot | Работа с сетью в Delphi | 1 | 22.01.2009 15:31 |
доступ к файлам | ryton | Общие вопросы Delphi | 13 | 23.05.2008 14:15 |