viernes, 28 de mayo de 2010

Error No se permite el verbo HTTP POST accediendo a una página html

Este error puede dar por varios motivos, pero me voy a centrar cuando se genera al intentar acceder a una página Html utilizando la propiedad PostBackUrl de un control button, imagebutton o linkbutton en ASP.NET.

Normalmente lo que se pretende, es ir de una página a otra al pulsar un botón. Poniendo en la propiedad PostBackUrl del control el nombre de la página de destino funciona, salvo que pongamos como destino una página html en vez de una aspx.

Esto tiene que ver con cross-page posting de .NET ( que nos permite acceder desde una página a los controles de la página de origen). Las páginas html no pueden procesar un formulario enviado con HTTP post y cuando producimos un postback (petición al servidor) por defecto se envía el form a la página de destino.

Hay varias formas para solucionar este problema
  1. Cambiar el botón por un hiperenlace a la página de destino (lo que puede hacer que el diseño de la página cambie demasiado)
  2. Programar el evento clic del botón indicando en response.redirect  la página de destino y quitar el valor de la propiedad PostBackURL
En el caso de un botón HTML (input type="button") podemos programar el evento onclic con javascript en el cliente

En el caso de un control button de asp.net la programación la haríamos en el fichero de código
 Algunos enlaces para saber más sobre este tema:

miércoles, 26 de mayo de 2010

Transformar una página HTML a ASPX

En más de una ocasión necesitamos añadir controles .net a una página web estática en HTML. Para poder hacer esto, necesitamos transformar esta página HTML en ASPX y si es necesario vincularla con una página de código en Visual Basic o C#

1 Realizamos una copia de la página HTML y renombramos la extensión a ASPX.

2 Añadimos la directiva @Page al principio del código.

3 Añadimos dentro de las etiquetas Body un formulario con la propiedad runat=server, que contenga los controles existentes en la página




A partir de aquí ya tenemos una página aspx totalmente operativa en la que se pueden utilizar controles de asp .net.

Si además queremos utilizar programación en Visual Basic o C# tenemos que hacer algún paso más.

1 Añadir al proyecto un nuevo elemento de tipo Clase (desde agregar nuevos elementos) y ponerle como nombre el de la página aspx y como extensión aspx.vb para Visual Basic o aspx.cs para C#.


Por defecto pregunta si queremos guardar este nuevo archivo en la carpeta APP_Code, ya que detecta que es un archivo de código, a lo que podemos responder que no y así lo anida debajo del archivo aspx que hemos creado en el paso anterior
2 Modificar la clase del fichero de código aspx.vb/ aspx.cs indicando que es una clase parcial y que hereda las propiedades de la clase Pages





3 Indicar a la página aspx, cual es el fichero de código asociado y su clase. Para esto modificamos la directiva @page añadiendo los parámetros CodeFile y ClassName



A partir de este momento ya tenemos la página totalmente transformada y operativa para trabajar tanto con controles .net como para utilizar código ( en este ejemplo) de Visual Basic o de C#

Antes
Despues

viernes, 7 de mayo de 2010

Abrir documentos docx de Word 2007 desde Word 2003

Con el cambio de versión de Office 2003 a Office 2007 de Microsoft han venido los problemas de compatibilidad con los documentos de Word, Excel, etc. Básicamente estos problemas vienen porque en la versión 2007 almacena la información de una forma muy distinta a como lo hacía en las versiones anteriores. La extensión que utiliza ahora es docx para Word, xlsx para Excel y unas distintas si tienen macros, frente a las extensiones doc y xls de la versión 2003.

Microsoft saco un complemento que se puede descargar gratuítamente desde su centro de descargas Complemento compatibilidad para Office 2003 junto con una página muy completa explicando los detalles del tema Información Microsoft

Hay que instalar el complemento en los ordenadores en los que queramos abrir documentos guardados con el formato 2007 y a partir de ese momento, los podremos tratar sin ningún problema (al menos los relacionados con la versión).

miércoles, 21 de abril de 2010

Redes Domésticas II - Elementos Básicos

Redes Domésticas I - Qué son y para qué sirven
Redes Domésticas II - Elementos básicos
Redes Domésticas III - Almacenamiento en red
Redes Domésticas IV - Impresión en Red
 
Tenemos varias formas de interconectar los diferentes aparatos, con Wifi, con cable o una combinación de
los dos.
Conectar aparatos utilizando WIFI.

Utilizar Wifi, significa que entre los distintos aparatos no vamos a necesitar ningún cable que los una, ya que todos disponen de capacidad para enviar información de forma inalámbrica (ordenadores, impresoras, discos duros,…).
Necesitamos por lo menos un elemento central que ponga en contacto los distintos dispositivos. Normalmente podremos utilizar en casa el router WIFI de la ADSL, en el caso de disponer de uno de ellos, y si no necesitaríamos  además un switch inalámbrico como el de la imagen al que se puedan conectar diferentes dispositivos.

Utilizar cables para conectar los equipos

Esta opción implica que tenemos que unir los diferentes aparatos mediante cables, pero obviamente no de cualquier forma sino cada aparato con un aparato central que distribuya la información.

Al igual del caso anterior en muchos casos podemos utilizar el router ADSL si tiene varias bocas o puertos donde conectar los diferentes cables.

Aquí empieza el primer problema, ¿qué cable tengo que utilizar?. Para montar una red necesitamos cable Ethernet con conectores RJ45 (son como los de los teléfonos pero más gordos, ya que tienen 8 hilos)

Si los diferentes aparatos no tienen ninguna boca o puerto de esas características, no podemos conectarlos directamente a la red y necesitaremos de adaptadores o servidores de conexión (lo comento posteriormente)

Volviendo al aparato para interconectar, si el router ADSL que tenemos en casa no dispone más que de una boja para cable de red, necesitamos de un swicth, hub o concentrador que permita enlazar más ordenadores (simplificando, como si fuera un ladrón para los enchufes, de tal manera que de una boca podamos conectar varios cables)

Una combinación de los dos anteriores

Algunos aparatos se pueden conectar por wifi, por ejemplo un portátil, y otros mediante cable, por ejemplo un ordenador de sobremesa.
Para esta solución necesitamos tener un router wifi con varias bocas de red para conectores Ethernet.

Qué problemas podemos tener

Está claro que podemos tener muchos problemas distintos, principalmente son los relacionados con la conexión y los relacionado con la configuración. Voy a centrarme en los de conexión y dejo para el próximo articulo los relacionados con configuración.


  • Tenemos un router adsl que no es inalámbrico y solo tiene una toma de red. Necesitamos unir este router a un switch de tal manera que podamos conectar más equipos. En el caso de que queramos utilizar la tecnología WIFI, tenemos que utilizar uno inalámbrico.

  • Router adsl con varias bocas de red pero no es inalámbrico. Si queremos utilizar varios equipos unidos con cables no hay problemas, pero si queremos que sea WIFI tenemos que hacer como el caso anterior.
  • No sé si el ordenador tiene tarjeta de red. Lo más sencillo es mirar en el Administrador de Dispositivos para ver que tarjetas de red tenemos en el ordenador. En el caso de que estemos hablando de impresoras o discos duros tenemos que ver si tiene alguna boca para enchufar un cable de red o antenas para conexión inalámbrica.



Artículos relacionados con internet y sus dispositivos
http://dunbit.blogspot.com/2009/07/internet-no-funciona-que-hago-parte-i.html
http://dunbit.blogspot.com/2009/07/internet-no-funciona-que-hago-ii.html
http://dunbit.blogspot.com/2009/08/traduciendo-la-publicidad-v-wifi-lan.html

martes, 20 de abril de 2010

Problemas con el certificado de seguridad del servidor de Exchange 2007 al abrir Outlook

Podemos ver que tenemos problemas con este certificado , cuando desde equipos cliente con Outlook, nos muestran mensajes de aviso, informándonos que el servidor al que queremos acceder no tiene un certificado válido y nos da la opción de continuar.

Esto sucede porque Exchange 2007 utiliza un servicio "Autodiscover" para facilitar a los clientes Outlook a obtener lo necesario para conectarese. En el caso de clientes externos, faciliata las URL necesarias y los internos acceden a través de una entrada  en el directorio activo llamada "Service Connection Point".
Para realizar estas comunicaciones utilizan SSL, que necesita un certificado digital válido. Si no disponemos de un certificado de una empresa externa, podemos utilizar los certificados autofirmados de Exchange.

Artículo interesantes sobre Autodisocover Service de Exchange ( ingles) http://msexchangeteam.com/archive/2007/04/30/438249.aspx


Libro blanco de Microsoft sobre el tema
http://technet.microsoft.com/en-us/library/bb332063(EXCHG.80).aspx


Volviendo a nuestro error, si miramos el visor de sucesos del servidor, encontramos en la rama de Aplicación, avisos y errores de la categoría MSExchangeTransport.

  • “Microsoft Exchange no encontró un certificado que contenga el nombre de dominio ….”
  • “El certificado de confianza directo entrante con la huella digital 26AA7F40122F76F04553DC... ha expirado. Ejecute New-ExchangeCertificate para generar un nuevo certificado de confianza directo.
  • Un certificado de confianza directo ha expirado. Huella digital: 40160209F26AA7F40122F76F045...
La solución se nos la indica en estos mismos avisos del visor de sucesos, tenemos que ejecutar desde la consola de administración de Exchange el comando New-ExchangeCertificate y crea de forma inmediata un nuevo certificado para el servidor donde se ejecuta, dando permisos para el grupo de seguridad Servicios de Red de acceso a la clave privada y se publica en el Active Directory.

Podemos comprobar los certificados que tenemos en nuestro servidor utilzando el comando del shell de Exchange Get-ExchangeCertificate -domain "nombre del dominio" |fl  que nos mostrará la información detallada.

Puede pasar que despues de realizar estos pasos siga saliendo el mensaje de aviso en el Outlook por lo que podemos forzar la activación del certificado para diferentes servicios, ejecutando el comando del shell de Exchange Enable-ExchangeCertificate - thumbprint "cadena exadecimal del certificado" - services "POP, SMTP, IIS"

lunes, 19 de abril de 2010

Redes Domésticas I - Qué son y para qué sirven

Redes Domésticas I - Qué son y para qué sirven
Redes Domésticas II - Elementos básicos
Redes Domésticas III - Almacenamiento en red
Redes Domésticas IV - Impresión en Red

Las redes domésticas consisten en interconectar diferentes dispositivos informáticos en nuestra casa, para poder trabajar con todos ellos.

Muchos tenemos una red doméstica en nuestra casa, aunque no seamos conscientes de ello. El ejemplo más sencillo es cuando tenemos un router ADSL conectado a un ordenador para navegar por internet. Esos dos aparatos, en la mayoría de los casos, son de por sí una red dentro de nuestra casa.

El concepto de red doméstica incluye una idea importante,  el que podemos conectar diferentes dispositivos y acceder a todos ellos, por ejemplo podemos añadir a nuestra red formada por un router ADSL y un ordenador, un segundo ordenador portátil y compartir archivos entre ellos, después podemos tener un disco duro en red donde guardar datos para verlos desde cualquiera de los ordenadores, incluso conectarlo a una televisión, podemos añadir además una impresora para que se pueda imprimir desde cualquiera de los ordenadores y ásí podemos añadir un largo etc.

Puede sonar a ciencia ficción eso de montarnos nuestra red en casa, pero gracias a que los fabricantes están simplicando mucho los métodos de configuración de los aparatos, es una realidad que no necesita de grandes conocimientos informáticos (quizas necesite más paciencia que otra cosa)

A lo largo de los diferentes artículos de la serie intentaré explicar los conceptos básicos que tenemos que conocer para saber por donde tirar a la hora de configurarnos nuestra red.