JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Nuevo catálogo de campusMVP: más cursos, más variedad de precios y también cursos gratuitos

Pues nada, hoy toca cuña publicitaria, pero creo que os va a interesar :-) Y es que hoy hemos lanzado nuestro nuevo catálogo de cursos de campusMVP. Y esto es sólo el principio, pues a lo largo del verano lo ampliaremos y además iremos lanzando muchas cosas nuevas que estamos seguros de que te van a encantar. Hemos hecho caso a todo lo que nos han dicho los alumnos últimamente y encontrarás muchas novedades: cursos más baratos, más tiempo para hacerlos, descuentos para desempleados, posibilidad de pagar todos los cursos con tarjeta y cursos gratuitos para que pruebes como se siente un alumno de campusMVP. Cuantos más cursos elijas más descuentos puedes obtener. Y también tenemos soluciones específicas para las empresas. Nunca fue tan fácil construirte una formación a la carta. Consulta nuestra nueva oferta formativa y aprovecha el verano para aprender. Échale un vistazo también a la nueva colección de cursos 'Al día en un día', que te permitirá controlar los fundamentos... [Más]

Acrobat Professional y firma digital de documentos en Windows Vista: sus problemas y cómo resolverlos

Como es sabido, desde hace ya bastantes años (1.999) la firma digital de documentos tiene validez legal en España. Además se puede utilizar en multitud de trámites con el Gobierno y las Administraciones Regionales y Locales. Por ello fui de los que se dio prisa en sacarle partido y solicitarla para poder firmar contratos, correos electrónicos, etc... Y no sólo yo, sino con el certificado digital de la empresa también. Bien, el caso es que una de las aplicaciones de firma digital más comunes y utilizadas en el mundo es Adobe Acrobat Professional. Lo que se hace es pasar el documento a PDF y luego con esta herramienta estampar una firma digital en el documento usando el certificado digital correspondiente. A partir de ese momento cualquier mínima modificación del mismo anula la validez de la firma y además se ofrece el "no repudio", es decir, atestigua de forma fehaciente que el que firma el documento es quien dice ser. Yo dispongo de Acrobat 7.0, que no es la última versión sino una ... [Más]

Clon de RunAs.exe (II): petición segura de contraseña

En mi anterior post hablaba de cómo construir un programa "clon" de la utilidad de línea de comandos Windows RunAs. En esta primera parte vimos cómo se lanzaba un proceso suplantando a un usuario, que era el objetivo principal de la aplicación, si bien es la parte más fácil. La tarea que nos quedó pendiente de ver es la más complicada y consiste en solicitar al usuario la clave de manera segura, sin que llegue a estar almacenada en claro en la memoria siquiera. Para ello usamos la clase SecureString, que apareció para estos menesteres en la versión 2.0 del framework. Sin más vueltas vamos a ver directamente cómo se solicita dicha clave y pasamos a explicar los puntos de interés: private static SecureString PideClave(string nomUsuario) { Console.WriteLine("Escriba la contraseña para {0}:", nomUsuario); int top, left; ConsoleKeyInfo cki; SecureString clave = new SecureString(); top = Console.CursorTop;... [Más]

Clon de RunAs.exe: cómo suplantar a un usuario con .NET 2.0

Esta es la primera parte de una serie de dos. El planteamiento es crear un programa que replique la funcionalidad básica de "RunAs", la utilidad de línea de comandos que permite ejecutar cualquier programa suplantando a otro usuario. Nuestro particular RunAs se encargará de solicitarnos de forma segura la clave para el usuario indicado y luego lanzará el .exe indicado suplantando al mismo y por lo tanto permitiéndonos hacer una escalada de privilegios o, por el contrario, ejecutar un programa con menos privilegios que el usuario actualmente autenticado en el sistema. Su uso básico es este: runas usuario ejecutable.exe o bien runas dominio\usuario ejecutable.exe si queremos indicar el dominio también. En este primer post voy a mostrar lo más sencillo que es lanzar el proceso suplantando a un usuario. Dejaré para el próximo la obtención de la clave del usuario y su almacenamiento seguro y pondré el código completo para descarga. El código principal del programa es el que muest... [Más]

GridView de ASP.NET a fondo: no te lo pierdas

El próximo día 1 de Julio tengo el gusto de participar como ponente en este interesante evento on-line de SecondNUG, el grupo de usuarios de .NET en Español que cada vez está teniendo más tirón: En este evento Luis Miguel Blanco se encargará de desvelar los secretos y dudas más comunes de las rejillas en programas de escritorio (Windows Forms), mientras que yo me encargaré de hacer lo propio con el control GridView de ASP.NET para desarrollo Web. Será una hora para cada control con contenidos eminentemente prácticos (mucha demo) y trataremos de resolver las dudas más comunes que se suscitan en los foros de MSDN. Apúntate pulsando sobre la imagen de más arriba.

Cómo evitar que la sesión caduque por inactividad

Siguiendo con esta mini-serie (parte I y parte II) sobre el mantenimiento de las sesiones en ASP.NET, en esta ocasión me voy a centrar en cómo evitar que una sesión caduque por inactividad mientras el usuario tenga el navegador abierto. Esta situación puede ser deseable en muchas ocasiones. Por ejemplo, nada fastidia más que estar redactando en el navegador directamente un artículo para un boletín o un blog (como es el caso) y que cuando vas a enviarlo y pulsas el botón "Publicar" te salga un mensaje diciéndote que la sesión ha caducado (y por supuesto has perdido todo lo que escribiste). En este caso es interesante que la página de edición mantenga la sesión viva mientras tú estás trabajando en ella, aunque te vayas a comer y vuelvas dos horas más tarde. Este caso se da por ejemplo en aplicaciones como nuestro servicio MAILCast®, en el que hemos implementado una solución similar a la que describiré ahora. Otro ejemplo lo tenemos en servicios como nuestra plataforma de teleformación... [Más]

Cómo detectar si la sesión ha caducado en ASP.NET (Método II)

En mi anterior post comentaba brevemente el funcionamiento más común de los sistemas de sesiones de los servidores de aplicaciones Web y en particular el de ASP y ASP.NET. Éste lleva acarreados una serie de problemas cuando ls sesiones terminan por lo que comentaba una forma sencilla de detectar que una sesión había caducado. En dicho post comenté que iba a explicar una forma más "profesional" y autocontenida de comprobar si una sesión está activa o no en ASP.NET, y a eso voy... El mecanismo para comprobar si la sesión actual está caducada o no pasa por el uso de una propiedad no muy conocida de la clase HttpContext: IsNewSession. Esta propiedad devuelve 'verdadero' únicamente cuando se acaba de crear una sesión para el usuario justo en la petición actual. Una sesión se crea cuando se crea una variable de sesión por primera vez. Al hacerlo se envía al cliente una cabecera con el identificador de sesión que es el que posteriormente el navegador envía de nuevo al servidor en cada petici... [Más]

Cómo detectar si la sesión ha caducado en ASP.NET (Método I)

El protocolo HTTP es un protocolo sin estado. Esto quiere decir que no hay forma incluída en el protocolo para discernir una petición de otra. Por lo tanto cuando llegan dos peticiones al servidor no hay forma de saber si pertenecen al mismo usuario (ni siquiera la IP como alguna gente me dice a veces, ya que muchas personas pueden salir a Internet desde la misma dirección IP (mismo router y conexión). Además los identificacdores estáticos como ese no son fiables nunca). Dicho esto, lo que está claro es que en la práctica sí que existe forma de distinguir que dos peticiones vienen del mismo usuario. Es el concepto que sostiene las sesiones de ASP.NET y otras tecnologías. ¿Cómo se consigue?. Bueno, existen muchas formas de hacerlo, pero la más habitual consiste en utilizar una cookie de sesión para almacenar un valor único que identifica de manera inequívoca a cada usuario. Estas cookies de sesión son realmente cabeceras HTTP que el navegador envía de vuelta al servidor en cada petició... [Más]

He estado muy "missing" pero estoy empezando a volver...

Hoy hace exactamente un mes que no publicaba nada en el blog. Me fastidia, y tengo muchas cosas interesantes en la recámara esperando a tener un rato para publicarlas, pero es que he tenido (y tengo) una temporada muy mala. O muy buena, según se mire. Estoy trabajando "a dolor" en el nuevo catálogo de cursos de campusMVP, que verá la luz en làs próximas semanas. Espero que os guste, porque vamos a pegar el cambio más grande en el proyecto desde que nació. Un currazo. Ya os iréis enterando, pero os va a gustar :-) Iremos sacando varias cosas nuevas poco a poco, algunas creo que de gran interés. También he estado muy liado preparando un curso de e-mail marketing que he impartido a varios clientes tanto presencialmente como en directo a través de Internet. Además he tardado más de lo normal porque he procurado ser muy ordenado y sistemático, ya que este curso constituye la base para un libro sobre el tema que hace un año que tengo en proyecto, y que espero que vea la luz ... [Más]