Создание и развертывание элемента управления ActiveX в .NET

Поскольку, по-видимому, нет элемента управления Flash, который может принимать растровые пасты, я хочу думаю о написании одного сам. Я бы предпочел не использовать Flash, поэтому я подумал об использовании .NET.

Теперь я считаю, что правильной терминологией для элемента управления в машинном коде, который можно загрузить и запустить в браузере, является «элемент ActiveX». Итак, мой вопрос: могу ли я создать такой элемент управления ActiveX с помощью .NET?

Я нашел несколько руководств в Интернете, но все они ожидают, что вы установили сборку на свой локальный компьютер, зарегистрировали и доверяли как ей, так и веб-сайту, который к ней обращается.

Это требует больших усилий от потенциальных анонимных пользователей Интернета, и даже для пользователей интрасети предпочтительнее другой метод развертывания.

Я отчетливо помню, как какой-то сайт просил меня скачать тот или иной элемент ActiveX. А на страницах, требующих таких подключаемых модулей браузера, как Flash и Java, существует некоторый механизм, с помощью которого обозреватель знает, где получить подключаемый модуль для этого типа мультимедиа.

Итак, у меня двоякий вопрос:

  • Могу ли я создать элемент управления, который может работать в браузере пользователя в .NET?
  • Каков наилучший метод (полу) автоматической доставки, которого я могу достичь?

В ответ Санни:

Да, многие редакторы форматированного текста JavaScript позволяют вставлять связанное изображение в текстовое поле и вставлять правильный тег ‹img›. Однако это работает только для изображений, которые уже есть в Интернете, и я хочу, чтобы это загружало новые изображения, просто копируя / вставляя любое случайное растровое изображение из вашего буфера обмена.


person rix0rrr    schedule 18.11.2008    source источник
comment
Я бы действительно рекомендовал избегать взлома функциональности буфера обмена, если только это не является основной функциональностью вашего веб-приложения.   -  person Eric Schoonover    schedule 24.11.2008


Ответы (3)


Если вас устраивает только IE, мне нравится модель безопасности размещенного элемента управления IE над Active-X, однако с 01.01.09 Microsoft не рекомендует использовать .NET (в процессе) для расширения IE, поэтому XBAP в порядке , но не в элементах управления ActiveX или размещенных элементах управления IE.

Обновление 7/13: Microsoft опубликовала руководство по внедрению внутренних расширений; он по-прежнему устарел.

Изменить: без настройки реестра IE8 будет загружать только размещенный на .NET элемент управления из интрасети или доверенной зоны, поэтому для общего использования в Интернете Active-X требуется для доступа с полным доверием в браузере.

Чтобы продолжить сообщение Русса: Silverlight не может получить доступ к буферу обмена: http://silverlight.net/forums/t/13024.aspx

Большая часть управляющей информации, размещенной в IE, находится в блогах, поэтому я использую: http://www.google.com/search?q=ie+hosted+control+site:msdn.com, чтобы найти их. Вот те, которые я нашел особенно полезными.

Быстрое и простое управление: http://blogs.msdn.com/mikechr/archive/2006/11/28/writing-a-simple-managed-control-under-ie.aspx

Странная вещь о безопасности, если "свидетельство" не является URL-адресом, можно доверять сборке, но не домену, требующему для исправления утверждений: http://blogs.msdn.com/carloc/archive/2006/11/01/code-access-security-hosting-control-in-ie.aspx

Это "исправлено" в 3.5 с манифестами. Это сложно сделать правильно, поэтому см. Инструкции по использованию манифестов из блога Shawnfa по безопасности .NET для . NET 3.5 Beta и опубликовать GA .NET 3.5. Блог Тодда Random Discovery также документирует шаги по созданию манифеста для размещенного элемента управления

Я нашел это полезным из статьи базы знаний о настройке безопасности, но вам все равно придется немного узнать о CAS: http://support.microsoft.com/kb/892466. Это, вероятно, главное соображение при принятии решения об использовании Active-X (.net) вместо размещенного в IE элемента управления - то есть, какая модель безопасности лучше всего подходит для вас и ваших пользователей. Я надеюсь, что использование манифеста заставит размещенные в IE элементы управления работать как однократное нажатие, когда пользователя просят «доверять», и система создает правильные настройки. В моей компании мы могли автоматизировать настройку безопасности для пользователя, поэтому мы выбрали хостинг.

Единственное, чего я так и не понял, было то, должен ли я наследовать от элемента (User) для элемента управления без пользовательского интерфейса. Это сработало для меня лучше, но мне пришлось «спрятать» div, в котором находился тег объекта.

Отладить элемент управления легко, если вы скомпилируете его для отладки и подключитесь к IE для «управляемой» отладки, как только вы загрузите элемент управления. Если не удается загрузить элемент управления, поищите информацию в средстве просмотра привязки сборок Fusion: http://msdn.microsoft.com/en-us/library/e74a18c4.aspx и как включить трассировку IEHost: http://support.microsoft.com/kb/313892, чтобы отладить процесс загрузки.

Обязательно обновляйте каждую версию сборки. Если вы этого не сделаете, IE запутается и не загрузит элемент управления, если сборка в кеше загрузки отличается, но имеет ту же версию #, что и та, на которую ссылается URL-адрес (gacutil / cdl очищает кеш загрузки .net)

person Tony Lee    schedule 12.01.2009

Поиск «Winforms, размещенные в IE». Несколько лет назад мне пришлось сделать нечто подобное, и именно здесь я наконец смог продвинуться вперед.

Обратите внимание на два момента: как вы могли заметить, эти вопросы возникают не очень часто, поэтому примеры ограничены. (Мне больше нечего делиться, извините). Кроме того, модель безопасности .NET сильно отличается от ActiveX на основе COM, поэтому заставить ее работать в различных зонах безопасности IE будет немного сложно.

Если у вас есть возможность использовать Silverlight 2, я бы, вероятно, склонился в этом направлении.

person Russ    schedule 18.11.2008

Использование ActiveX ограничивает вас только IE и Windows. Лучше взгляните на google docs и / или gmail, чтобы увидеть, как они обрабатывают вставку изображения в вашу электронную почту / онлайн-документ, используя только javascript. Работает нормально с большинством браузеров и ОС.

person Sunny Milenov    schedule 19.11.2008
comment
Интересно, поддерживается ли вставка изображений в Gmail и gdocs только в браузерах HTML5? - person Dustin Getz; 12.07.2010