JASoft.org

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

MENÚ - JASoft: JM Alarcón

Cifrado de información en los archivos de configuración de ASP.NET

Una pregunta muy típica con la que me suelo encontrar es la de: "¿Cómo puedo hacer para proteger la información de mi cadena de conexión a la base de datos si ésta la pongo en mi web.config?". Bueno, lo primero que he de decir es que siempre conviene usar mejor la seguridad integrada de Windows (cadena de conexión con "Integrated Security=SSPI;") que las cuentas propias de SQL Sever, por lo que en ese caso no sería necesario encriptar nada. Por otro lado existe un manejador de peticiones de IIS que impide que el contenido de los archivos web.config sea accedido mediante HTTP, por lo que sólo debería preocuparnos que alguien viera nuestra configuración en caso de tener un agujero de seguridad en el servidor o bien en nuestro código (por cierto, aprende a evitarlos), en cuyo caso tendríamos un problema mucho mayor que el hecho de que sepan las credenciales de un usuario de SQL Server, que ya de po... [Más]

TRUCO: Cómo conservar la distribución de los iconos del escritorio

Si hay una cosa que me revienta es que se me desordenen los accesos directos que tengo colocados en mi escritorio. Como tipo ordenado y rigoroso que soy, mis accesos directos no están colocados de cualquier forma, sino que los tengo agrupados de una manera lógica (para mi, claro), de forma que pueda encontrar rápidamente lo que busco. Lo que más tengo son accesos directos a Internet con direcciones de consulta, cosas de las que me quiero acordar, etc... Por eso, cuando cambias la resolución, tienes un problema con los drivers de pantalla (como los que asistísteis a mi charla del lanzamiento de VS2008 recordaréis), o cualquier otra circunstancia, me paso media hora ordenandolos de nuevo. Y no estoy para perder el tiempo en chorradas. No sé cómo una cosa tan común como está no la incorpora Windows de serie. Parece mentira. El caso es que me dió por ver si había forma de conseguirlo. Y efectivamente la hay, como era de esperar. Resulta que, nada más y nada menos que en el kit de recurso... [Más]

Como obtener los roles a los que pertenece un usuario: revisited

Hace ya un montón de tiempo (en septiembre de 2004), escribí un post, creo que interesante, sobre cómo obtener los roles a los que pertenecía un usuario de Windows. El caso es que entonces la única manera de conseguirlo era mediante reflexión saltarse las normas de acceso a miembros para llamar a un método interno de la clase WindowsIdentity que devolvía esa información. El caso es que desde entonces no lo había vuelto a revisar (ni falta que me hizo), pero hoy uno de los alumnos de nuestro curso 70-536 de fundamentos de desarrollo en .NET para certificación, me ha hecho notar que en -NEt 2.0 y superiores ya no funciona, y además me ha sugerido la forma de hacerlo con las nuevas versiones (muchas gracias Miguel Ángel, vero que el curso te está cundiendo mucho, jeje), que sería así:        private static string[] ListaDeRolesNET2(WindowsIdentity wId)         {        &nb... [Más]

Instalar el sistema de BackUp de XP o Windows 2003 Server en Vista

Sin paños calientes: el sistema de Backup que trae Vista no vale para nada. Bueno, sí, vale para usuarios domésticos que no quieren ni pueden complicarse la vida. Pero en entonos profesionales es otra cosa. Parece mentira que un Vista Enterprise o Ultimate no meta otro sistema diferente. El caso es que el sistema que trae Vista es muy sencillo d eusar pero no te deja obtener un buen control sobre lo que archivas, excluye ciertos tipos de archivos y, si no tienes instalado el Service Pack 1, no te guarda archivos cifrados con EFS (Sistema de archivos Encriptado), algo que por ejemplo yo uso cantidad, y muchos profesionales que manejan datos confidenciales (abogados, médicos, etc...) también. La ayuda del sistema dice en concreto lo que pone la imagen del lateral. Total, que lo que he hecho es instalar en mi Vista una copia del programa de Backup de toda la vida que venía con Windows 2000 y superiores. NtBackup.exe, vamos. Para conseguirlo debes buscar tres archivos en la carpet... [Más]

Windows Vista: el único sistema operativo viable para las grandes empresas, según Forrester

Esto va a ser polémico, como no... pero un informe que acaba de sacar (ayer) la prestigiosa empresa de investigación Forrester Research concluye que Vista es el único S.O. viable para implantar en grandes empresas, y que todas deberían ir migrando hacia él pronto, dejando de lado a Mac y a Linux. El inform se titula "Building The Business Case For Windows Vista, Five Reasons To Start Your Company's Migration Soon" estudia las formas de implantar los distintos SO en las empresas, sus pros, sus contras, etc.. y lega a la conclusión de que, por muchas razones, las grandes empresas deben migrar hacia Vista cuanto antes. Por ejemplo, dicen cosas ta directas como esta: "Para grandes emrpesas no hay otra opción viable" Dicen que con el SP1 de Vista las migraciones están empezando a acelerarse. Con respecto a Mac y Linux dicen: "Estos SO han encontrado su nicho en ciertas industrias Por ejemplo Apple en marketing e investigación científica así como en el sector sanitario y retail. Nove... [Más]

El problema de los valores por defecto en listas desplegables de ASP.NET

Se trata este de un truco sencillo, pero aún así interesante ya que mucha gente tarda en darse cuenta de cómo solucionarlo. El problema surge cuando usas un control DataSource del tipo que sea (ObjectDataSource, SqlDataSource, LinqDataSource, etc...) y lo enlazas con un DropDownList para mostrar una lista de valores para elegir, por ejemplo, la categoría de productos a mostrar en otro control GridView. El origen de datos te devuelve sólo los diferentes valores de categorías disponibles en la base de datos, pero lo habitual es que además de una categoría (o lo que sea) concreta, desees dar una opción o dos por defecto, por ejemplo "Ver todas" y "Ninguna". Pero claro el control de origen de datos no tiene esas categorías inexistentes contempladas, así que ¿cómo haces? Pues muy fácil, pero hay que saber un truquillo: la propiedad AppendDataBoundItems del control DropDownList. Si la estableces a True lo que consigues es que cualquier elemento que coloques en lalista en ti... [Más]

Bug en el control RangeValidator con los idiomas Búlgaro y Eslovaco

Bueno, esto es de estas cosas que crees que a ti no te van a pasar pero luego resulta que sí, que te pasan :-) Y es que un cliente nuestro ha encontrado la aguja en el pajar. Una aplicación que teníamos producía un error inexplicable en un par de clientes de este cliente, y no sabíamos de qué era. Viendo el registro de errores pudimos llegar a dar con el problema. Resulta que cuando el idioma del navegador del usuario es Búlgaro (bgt-BG) o Eslovaco (sk-SK) y tienes el cambio automático de cultura activado, el control RangeValidator puede romper si estás validando fechas. Sí, es que la aplicación que habíamos hecho está internacionalizada y nuestro cliente tiene clientes en todas partes de europa, así que... Al producirse el error la página incluso deja de cargar, ya que rompe durante la asignación de los valores máximo y mínimo si éstos se establecen mediante código (como es normal cuando se trata de fechas). El problema es que en estos países el formato de fechas es raro de narice... [Más]

Controles GridView que rompen con el nuevo Service Pack 1 para .NET 2.0 y .NET 3.5, y nueva propiedad de campos enlazados

Recientemente instalé el nuevo Service Pack 1 para .NET 2.0 (y .NET 3.5) en un servidor de producción. De repente la aplicación empezó a producir resultados inexplicables en unas rejillas de la aplicación de un cliente. De hecho desaparecían multitud de registros de éstas, aunque las consultas de las que dependían se seguían realizando sin problemas. Era un problema bastante raro y pensamos en un bug del SP1. El caso es que fué una combinación de un error nuestro y un cambio de comportamiento en el SP1 de .NET 2.0. Lo explico porque puede interesarle a bastante gente. De hecho este problema tiene mucho que ver con otro que ya ocmenté en este blog hace unos meses sobre el formato de fechas en los campos enlazados de una rejilla. En ese post además mostraba el código fuente de .NET que involucraba a este problema. En el SP1 han cambiado ligeramente el comportamiento del enlazado a datos de campos DataBound en rejillas. El caso es que el programador de nuestra aplicaicón había puesto ... [Más]

Google App Engine: hosting de alta disponibilidad gratuito

Interesante noticia la aparecida hoy en los medios americanos respecto a este anuncio del gigante de los buscadores. Se trata de App Engine (ver el motor del grafiquito adjunto, se han roto la cabeza con el logo), un nuevo servicio a través del cual Google ofrece a los desarrolladores su infraestructura de red y de servidores para albergar aplicaciones Web. Y lo mejor es que es completamente gratuita. De momento se lo darán sólo a los 10.000 primeros que lo soliciten. También tendrá algunas limitaciones, pero vamos, que si mi aplicación Web las alcanzara creo que me daría exactamente igual pagarles un pasta por dejarlo ahí: 10 GB de transferencia diaria, y 500 MB de almacenamiento (esto último es quizá un poco escueto si quieres guardar contenidos). Con esa transferencia se estima que podrías servir alrededor de 5 millones de páginas vistas diarias. Ahí es nada. A partir de ese lïmite empezarán a cobrar. Podrás utilizar BigTable, el sistema de almacenamiento distribuido de Google (us... [Más]

Creative amenaza a un programador por desarrollar drivers mejores a los de ellos

Esto lo he leído hoy en Engadget y he flipado bastante. Reproduzco: "Muchos usuarios han tenido problemas usando las tarjetas de sonido de Creative en Vista, y un habilidoso programador, Daniel Kawakami, se las arregló para escribir sus propios drivers. Resulta que el software proporcionado por Daniel es aún mejor que el del fabricante, y por eso sus programas llegaron a hacerse muy populares. El problema empieza cuando Daniel pide donaciones para poder dedicarle más tiempo a la programación, y Creative no toma las cosas bien, por lo que procede a amenazarlo públicamente en los foros. La respuesta de Daniel es simple y clara: no producirá más controladores, pero se siente molesto porque dice que Creative simplemente podía haberle enviado un email. A nosotros nos parece que Creative debería invertir más tiempo contratando a Daniel para que haga lo que ellos no pueden, y menos tiempo amenazándolo." Yo me pregunto: ¿realmente Creative no es capaz de hacer drivers mejores? ¿No tien... [Más]