Tag Archives: net

¿Cómo recuperar un certificado con X509Certificates?

26 Feb

Los certificados son archivos que nos ayudan a proteger un fichero y evitar así que puedan ser modificados por terceras personas o máquinas que puedan suplantarnos.

En este ejemplo intento mostrar como recuperar un certificado de una colección o almacén de certificados y firmar un array de byte.

Requisitos X509Certificates y iTextSharp.
Sigue leyendo

Anuncios

¿Qué es y cómo usar un fichero de recursos?

3 Feb

En este artículo, que os aviso está basado en notas y puede que no quede tan claro como otros, veremos cómo crear, mantener y consumir un fichero de recursos.

¿Qué es un fichero de recursos?
Los ficheros de recursos, son los archivos que no contienen código fuente, los datos de estos recursos se almacenan en formato xml y son constantes, valores fijos para toda la aplicación.
Nos centramos en el uso de los recursos para la traducción de nuestra aplicación en diversos idiomas.
Al distribuir la aplicación ha de incluir el ensamblado de la aplicación principal y el de los satélites o ficheros de recursos, nuevos o modificados. Cuando modifique un fichero de recursos, no será necesario volver a compilar el ensamblado de la aplicación principal.

Creación de un fichero de recursos
La creación de un fichero de recursos es tan sencilla como pulsar el botón derecho sobre la carpeta App_GlobalResources, añadir nuevo elemento y suministrar los valores necesarios a la ventana que aparecerá…

Asignar un nombre y aceptar.

Cargar datos en un fichero de recursos
Una vez creado el fichero, podemos acceder a él, como siempre, haciendo doble click sobre él y se abrirá el fichero con un formato de tabla.

Para añadir datos es tan sencillo como ir rellenando los datos:
• Columna nombre: Identificador por el que se referencia el recurso.
• Columna valor: Texto que mostrará cuando usemos el recurso.
• Columna comentario: Comentario sobre su uso.

Consultar el fichero de recursos
Para poder utilizar el fichero de recursos creado en el apartado anterior, se puede hacer de dos maneras:
i. Incluir en la página Code Behind (aspx.vb) la instrucción Imports Resources.
ii. Sin incluir ningún imports.
Dependiendo de si hemos declarado el uso del fichero Resources o no, tendremos que buscar los recursos de las siguientes formas para cargar nuestra variable de texto TxtMensaje:
TxtMensaje = Resource.msg_NoSeHaEncontrado
TxtMensaje = Resources.Resource.msg_NoSeHaEncontrado
Incluyendo un manejador
Dim rm As ResourceManager
rm = ResourceManager.CreateFileBasedResourceManager(“strings”,”.”,Nothing)

Ejemplo Asignación de los recursos(dependiendo de idioma)
Para poder tener nuestra aplicación en varios idiomas, declaramos un fichero de recursos por cada idioma.

Una vez declarados los ficheros de recursos, habría que declararse una variable en la que almacenar en que idioma mostrar la información, al ser una información dependiente de cada usuario, lo suyo sería declarar una variable de visible para toda la aplicación en la que almacenaríamos la opción elegida por el usuario.

Hay varias maneras de mostrar los mensajes.
1) Ejemplo, aunque he definido K y le he asigando un valor fijo, se podría sustituir, por el valor que este usuario tiene guardado en base de datos, o dependiendo de dónde se accede, o del que ha seleccionado en un combo en la web.

Dim k As String = “ESPAÑOL”

2) Ejemplo, dependiendo del valor de k, iremos a recuperar el valor que nos interesa, a modo de ejemplo.
If k = “ESPAÑOL” Then
CargarMensaje(Resources.SP.saludo)
Else
CargarMensaje(Resources.EN.saludo)
End If

Infragistics Toolbar, o como codificar un menú en 2 pasitos

24 Dic

Infragistics es una empresa dedicada entre otras cosas a generar controles ASP.NET avanzados que permiten crear de forma rápida experiencias de usuario superiores de estilo, con la estabilidad y el rendimiento necesarios para confiar en ellos a la hora de desarrollar.

Uno de estos controles es el ToolBar o barra de menú, una vez instalado el control e insertado en nuestro formulario, hay que cargarlo en modo diseño, por ejemplo, aunque también se puede cargar por código pero eso lo dejo para otra entrada.
Para la definición de las opciones del menú utilizaremos la opción del menú contextual del control seleccionando ActiveX Configure

menu

Paso 1 Cofiguración
Al seleccionar la opción se nos abrirán dos pantallas, una con “como queda el menú” y otra con la definición de las diferentes secciones.
menuConfig

En la ventana “Configuration Control Panel” podemos crear nuevas opciones de nuestro menú con el botón New o editar las existentes con Edit es bastante sencillo, sólo hay que tener cuidado con el tipo de entrada. Button si es una opción de menú que nos abrirá un formulario o Menu si es una opción de menú que nos abrirá un submenú.

Según se vayan declarando las opciones o una vez que tengamos todas creadas, eso da igual, hay que añadirlas al diseño del menú, en el orden y dentro del submenú en el que queramos que se muestren. Para esto no se necesita nada mas que seleccionar de la lista de elementos y arrastrarlo a la posición elegida en el menú. No pasa nada si no aciertas con el orden, lo puedes modificar tantas veces como quieras en diseño.

Bien, supongamos que ya hemos introducido nuestro menú con sus sesenta elementos. Ahora en el código tendremos que ver que id nos han pulsado para poder definir la instrucción a realizar, y aquí está la finalidad de este artículo…
¿Vamos a escribirnos un “select” con las distintas opciones?, si lo hacemos así vamos a perder mucho tiempo y nos arriesgamos a que al ejecutar el id escrito a mano no concuerde con el escrito en la configuración.

Fijaos en este primer plano de la imagen dos.
MenuOpciones

Paso 2 Exportar Id del menú
Pulsando sobre la opción remarcada Copy Tools IDs To Clipboard AS VB ‘Select’ Stament, no necesita traducción, pero Copia los ID de las opciones como una sentencia ‘Select’ de VB. Sólo nos queda pegarlo en el evento ToolClick de nuestro menú.

Espero que con este ejemplo pueda recordar como configurar y exportar los ID de un menú en el futuro y os sirva a vosotros…

Sean felices desarrollando y feliz Navidad.

Crea y utiliza tu “Manejador de configuración” en 3 pequeños pasitos.

10 Dic

El archivo de configuración de la aplicación vb.Net es el web.config, dónde tenemos almacenadas todas las rutas a las distintas bases de datos, los usuarios y claves, perfiles específicos, etc…

Para acceder a esta información se suele acceder con churros del estilo a; System.Configuration.ConfigurationManager.AppSettings(“CONSULTA_MENU_USUARIO”) o bien, y es lo que os voy a tratar de explicar hoy, utilizar un “Manejador de Configuración” o clase en el que volcar toda la información definida en el web.config y acceder a ella desde cualquier lugar de la aplicación. 

El “Manejador de Configuración” nos va a permitir tener un punto de acceso único al web.config y así nos resultará más fácil el mantener la relación entre el fichero de configuración y la aplicación.

Para crear y utilizar el “Manejador de Configuración” desde cualquier lugar de la aplicación hay que seguir 3 pequeños pasitos:

  1. Modificación del fichero de configuración (web.config).
    Hay que modificar el fichero de configuración de la aplicación para indicarle, quien va a ser la sección que almacene las especificaciones a volcar en la clase y que clase va a ser.

    En el siguiente ejemplo vemos como quedaría el web.config desnudo, solo lo que nos interesa:

    <configuration xmlns=”http://schemas.microsoft.com/.NetConfiguration/v2.0″&gt;

    <configSections>

    <section name =”LectorConfiguracion” type=”EspacioDeNombres.LectorConfig”/>

    </configSections>

    <LectorConfiguracion>

    <add key=”Version_SQL_Server” value=”2005″/>

    </ LectorConfiguracion>

    Dentro de la sección “configSections” he creado una nueva sección “LectorConfiguracion” en un alarde de originalidad y le indico que es del tipo EspacioDeNombres.LectorConfig, que es la clase que me he creado.

    La otra modificación que hay que hacer en el web.config es la de añadir toda la configuración que vamos a leer desde nuestra clase LectorConfig y para ello creamos un nuevo nodo, “LectorConfiguración”, se tiene que llamar igual que la sección definida en el configSections.

    Yo sólo he añadido la versión de SQL que voy a usar y le he dado un valor, pero puedes añadir todo lo que quieras. Podrías añadir toda la antigua configuración del web.config…

    Hecho esto, ya está el web.config modificado, guardamos los datos y listo.

  2. Creación del “Manejador de Configuración”.
    La clase manejadora se crea como una clase Public NotInheritable, dentro de nuestro espacio de nombres e implementando IConfigurationSectionHandler, interfaz que controla el acceso a determinadas secciones de configuración.

    Variables privadas y compartidas a declarar:

    Con la fórmula siguiente se declararán todas las propiedades a recuperar del web.config.

    Private Shared _DSNSQL as String

    Este ejemplo es con el DSN declarado como string, pero puede ser declarado con cualquier tipo de dato, string, Boolean, entero, etc… tendrás que convertir al tipo deseado lo que recibas del web.config.

    Nuestro “Manejador de Configuración” no puede ser instanciado desde ninguna parte de la aplicación, así que declaramos las propiedades de tipo shared

    Public Shared ReadOnly Property DSNSQL() As string, Declaramos el Get, ya que no tiene sentido que cambie los valores de configuración.

    La chicha está en los métodos Inicializar y Create que son los métodos que vamos a emplear para leer la configuración del web.config y para cargar dicha información a nuestros miembros, respectivamente.

    En nuestro Manejador de configuración creamos los métodos:

    Public Shared Sub Inicializar()

    System.Configuration.ConfigurationManager.GetSection(“LectorConfiguracion”)

    End Sub

    Método encargado de leer la sección de configuración dentro de nuestro web.config, al leer esta sección se dispara un determinado evento haciendo que el compilador ejecute el contrato especificado por nuestra interface implementada. Me refiero a la función “Create”

    Private Function Create(ByVal parent As Object, _
    ByVal configContext As Object, _
    ByVal section As System.Xml.XmlNode) As Object _
    Implements System.Configuration.IConfigurationSectionHandler.Create

    Dim sh As NameValueSectionHandler
    Dim nv As NameValueCollection
    sh = New NameValueSectionHandler
    nv = CType(sh.Create(parent, configContext, section), NameValueCollection)

    If Not nv Is Nothing Then
    _DSNSQL = nv.Item(“DSNSQL”) ‘Aquí recupero sólo el DNSQL, pero vosotros recuperaríais todos los valores.
    End if
    sh = Nothing
    nv = Nothing

    Return Me ‘Devuelvo la clase cargada con los valores de configuración.

    End Function

  3. Invocar la carga del Manejador de Configuración con los datos del web.config.

    Parece lo más lógico que si en esta clase vamos a recuperar todos los datos de configuración de la aplicación, que los recuperemos antes de realizar cualquier operación en la aplicación.

    Abre el archivo global.asa y en el start de la aplicación recupera la configuracion del web.config, de la siguiente manera.

    LectorConfig.Inicializar()

    Al recuperar la configuración, se lanza el evento create que declaramos en nuestra clase.

    Si esto no te ha producido ningún error, ya puedes usar tu Manejador de congiguración, desde cualquier parte de tu solución.

Hasta aquí, los 3 pasitos para realizar un “Manejador de Configuración”, espero os sea útil…

La que has liado

Fotografiar con palabras, nuestro momento, nuestra época. Del 1.1 al 2.0

TERZERO

Pio Baroja

El árbol inútil

Blog de cuentos, libros y mala poesía

tu.deinflexión

somos dueños de nuestro destino, inventores de nuestro futuro y nuestra felicidad...

Frikstation

Pasión por el mundo de la televisión, el cine, los videojuegos y su merchandising.

A %d blogueros les gusta esto: