Как сохранить изображение из приложения XBAP с частичным доверием?

У меня есть приложение XBAP, которое показывает некоторые изображения, и мои пользователи хотели бы сохранить некоторые из них на диск. Но мое приложение XBAP работает в режиме частичного доверия, поэтому оно не может инициировать SaveFileDialog, не говоря уже о том, что оно не может получить доступ к файловой системе.

Какой в ​​этом случае рекомендуемый способ Stack Overflow для сохранения изображения на диск?


person Max Galkin    schedule 10.12.2009    source источник


Ответы (1)


Я нашел решение своей проблемы, и я собираюсь разместить этот ответ как вики сообщества.

Как и ожидалось, я не смог получить доступ к файловой системе, показать SaveFileDialog или сохранить изображение в буфер обмена из-за ограничений безопасности частичного доверия.

Итак, я создал обработчик .ashx на сайте, с которого развернуто мое приложение XBAP, который получает определенный идентификатор изображения в строке URL, запрашивает изображение из БД и возвращает изображение (context.WriteBinary) под соответствующим заголовком содержимого «image/jpeg».

В моем XBAP вместо элемента управления Image я поместил элемент управления WebBrowser, снабженный правильным URI (вам может понадобиться трюк для привязки свойства Source). Вы можете указать только URI, указывающий на исходный сайт вашего приложения XBAP. Это может быть абсолютный путь или специальный синтаксис, включающий pack://siteoforigin:,,.

Вуаля, теперь картинка поддерживает стандартное контекстное меню браузера с "Сохранить...", "Сделать фоном" и всеми остальными полезными элементами :-)

person Community    schedule 16.12.2009