2008-11-18 22 views
5

Como aparentemente no hay Flash control that can accept bitmap pastes, quiero pensar en escribir uno yo mismo. Preferiría no usar Flash, así que pensé en usar .NET.Creando e implementando un control ActiveX en .NET

Ahora creo que la terminología correcta para un control de código nativo que se puede descargar y ejecutar en el navegador es "Control ActiveX". Entonces mi pregunta es, ¿puedo crear un control ActiveX de este tipo con .NET?

He encontrado algunos tutoriales en la web, pero todos esperan que tenga el ensamblado instalado en su máquina local, y se registra y confía tanto en él como en el sitio web que lo está accediendo.

Esto está pidiendo un poco más a los posibles usuarios de Internet anónimos, e incluso para los usuarios de la intranet sería preferible otro método de implementación.

Recuerdo claramente algún sitio web que me pide que descargue este o aquel control ActiveX. Y en las páginas que requieren complementos de navegador como Flash y Java, hay algún mecanismo por el cual el navegador sabe dónde buscar el complemento para ese tipo de medio.

Así que mi pregunta es doble:

  • ¿Puedo crear un control que se puede ejecutar en el navegador del usuario en .NET?
  • ¿Cuál es el mejor método de entrega (semi) automática que puedo lograr?

En respuesta a Sunny:

Sí, un montón de JavaScript editores de texto enriquecido permiten pegar una imagen ligado en un campo de texto, y se insertará la correcta <img> etiqueta. Sin embargo, esto solo funciona para imágenes que ya tienen una ubicación en la web, y quiero que esto cargue nuevas imágenes simplemente copiando/pegando cualquier mapa de bits aleatorio de su portapapeles.

+0

realmente me recomiendan evitar la piratería en la funcionalidad del portapapeles a menos que sea absolutamente funcionalidad central para su aplicación web. –

Respuesta

5

Si solo está de acuerdo con IE, me gusta el modelo de seguridad del control alojado IE sobre Active-X, sin embargo, desde 1/1/09, Microsoft desaprueba el uso de .NET (en proceso) para extender IE entonces XBAP está bien, pero no en controles ActiveX o controles alojados en IE.

Actualización 7/13: Microsoft ha publicado guidance on implementing in-process extensions; todavía está en desuso.

Editar: Sin ajustar el registro, IE8 solo cargará a.NET hospedó el control desde la intranet o zona de confianza, por lo que para el uso general de Internet, se requiere Active-X para el acceso de plena confianza en el navegador.

Para seguir arriba en el post de Russ: Silverlight no puede acceder al portapapeles: http://silverlight.net/forums/t/13024.aspx

mayor parte de la IE organizó la información de control se encuentra en los blogs así que utilizo: http://www.google.com/search?q=ie+hosted+control+site:msdn.com para encontrarlos. Debajo están los que he encontrado particularmente útiles.

rápida y fácil control: http://blogs.msdn.com/mikechr/archive/2006/11/28/writing-a-simple-managed-control-under-ie.aspx

Lo curioso de seguridad, a menos que la "evidencia" es una URL, el conjunto puede ser de confianza, pero no el dominio, lo que requiere afirma fijar: http://blogs.msdn.com/carloc/archive/2006/11/01/code-access-security-hosting-control-in-ie.aspx

Este está "arreglado" en 3.5 con manifiestos. Es complicado para hacerlo bien por lo que consulte las instrucciones sobre el uso de los manifiestos de Blog Seguridad de .NET de Shawnfa para la .NET 3.5 Beta y post GA .NET 3.5. El blog Todd's Random Discovery también documenta el steps for creating a manifest for a hosted control

Encontré esto útil desde un artículo de KB sobre la configuración de la seguridad, pero aún tendrá que aprender bastante sobre CAS: http://support.microsoft.com/kb/892466. Esta es probablemente la consideración principal cuando se decide usar un Active-X (.net) frente a un control alojado de IE, es decir, qué modelo de seguridad funciona mejor para usted y sus usuarios. Mi esperanza es que el uso de manifest hará que los controles alojados de IE funcionen como "click-once" donde se le pide al usuario que "confíe" y el sistema crea las configuraciones correctas. Para mi empresa que utilizamos podría automatizar la configuración de la seguridad para el usuario, por lo que un hosting fue nuestra elección.

La única cosa que nunca imaginé era si tenía o no tenía que heredar de control (usuario) para un control de IU-menos. Funcionó mejor para mí hacerlo, pero tuve que "ocultar" el div en el que vivía la etiqueta del objeto.

Es fácil depurar el control si compila para la depuración y se conecta al IE para la depuración "administrada" una vez que obtener el control para cargar. Si no se puede conseguir el control de la carga, consultar la información sobre el conjunto de la fusión visor de unión: http://msdn.microsoft.com/en-us/library/e74a18c4.aspx y cómo activar el rastreo de IEHost: http://support.microsoft.com/kb/313892 con el fin de depurar el proceso de carga.

Asegúrese de versión de todas las versiones de la asamblea. Si no lo hace, entonces IE se confunde y no carga el control cuando el montaje en el caché de descarga es diferente, pero tiene la misma versión # como una de las referencias de URL (gacutil/CDL borra la caché de descarga de .NET)

2

Búsqueda "Winforms hosted in IE". Tuve que hacer algo similar hace unos años, y ahí es donde pude finalmente hacer algo de cabeza.

Dos cosas a tener en cuenta: Como habrás notado, esta pregunta no aparece con mucha frecuencia, por lo que los ejemplos son limitados. (Ya no tengo ninguna para compartir, lo siento). Además, el modelo de seguridad de .NET es muy diferente al ActiveX basado en COM, por lo que hacer que esto funcione en las diferentes zonas de seguridad de IE será un poco complicado.

Si tiene la posibilidad de utilizar Silverlight 2, probablemente me inclinaría en esa dirección.

0

El uso de ActiveX lo limita a IE y Windows solamente. Es mejor echar un vistazo a google docs y/o gmail para ver cómo manejan el pegado de una imagen en su correo electrónico/documento en línea usando solo javascript. Funciona bien con la mayoría de los navegadores y sistemas operativos.

+0

Me pregunto si las imágenes de pegar en gmail y gdocs solo son compatibles con los navegadores HTML5. –

Cuestiones relacionadas