Es muy simple...
Archivo WEB.CONFIG
Primero, debes editar el archivo xml Web.Config Dentro de la etiqueta "configuration" escribir la cadena de conexión a la base de datos:
En el caso de que utilices usuario y password, simplemente se lo agrega y quedaría así:
Lo cierto es que son muchos más valores que le podés agregar a tu cadena, en el siguiente link encontrarás todos: http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlconnection.connectionstring(VS.80).aspx
ACCEDER DESDE VB.NET
Luego, en tu código, para acceder a la cadena es como sigue:
ALGO MÁS
Para que todo funcione,debes agregar la DLL System.Configuration a tu proyecto.
Compilas y ya.
Me gusta compartir lo que aprendo, y aprender para compartir. «Learning is good but sharing is cool» (by LMB)
Tuesday, June 22, 2010
Thursday, May 13, 2010
Hoax: cadenas De mensajes
¿Qué es un hoax? Es una noticia falsa, un intento de hacer creer a un grupo de personas que algo falso es real
¿Y un hoax informático? Es un mensaje de correo electrónico con contenido falso o engañoso y atrayente. Normalmente es distribuido en cadena por sus sucesivos receptores debido a su contenido impactante que parece provenir de una fuente seria y fiable o porque el mismo mensaje pide ser reenviado
Las personas que crean bulo suelen tener alguno de los siguientes objetivos:
Captar direcciones de correo (para mandar spam, virus, mensajes con phishing o más bulo a gran escala)
Intentar engañar al destinatario para que revele su contraseña o acepte un archivo de malware.
Confundir o manipular a la opinión pública de la sociedad
Uno de los hoax que están circulando ahora es el siguiente:
Por lo general, los hoax informáticos tienen estos temas:
**Alertas sobre virus incurables
**Falacias sobre personas, instituciones o empresas
**Mensajes de temática religiosa
**Cadenas de solidaridad
**Cadenas de la suerte
**Métodos para hacerse millonario
**Regalos de grandes compañías
**Leyendas urbanas
ASI QUE SI RECIBES UNO DE ESTOS TIPOS DE CADENAS, NO LOS REENVIES.
¿Y un hoax informático? Es un mensaje de correo electrónico con contenido falso o engañoso y atrayente. Normalmente es distribuido en cadena por sus sucesivos receptores debido a su contenido impactante que parece provenir de una fuente seria y fiable o porque el mismo mensaje pide ser reenviado
Las personas que crean bulo suelen tener alguno de los siguientes objetivos:
Captar direcciones de correo (para mandar spam, virus, mensajes con phishing o más bulo a gran escala)
Intentar engañar al destinatario para que revele su contraseña o acepte un archivo de malware.
Confundir o manipular a la opinión pública de la sociedad
Uno de los hoax que están circulando ahora es el siguiente:
URGENTISIMOOOOOOOOOOOO !!!
POR FAVOR, HAZ CIRCULAR ESTE AVISO A TUS
AMISTADES, FAMILIA, CONTACTOS !!!
En los próximos días, debes estar atent@:
No abras ningún mensaje con un archivo anexo llamado: Invitación de FACEBOOK,
independientemente de quien te lo envíe. Es un virus queabre una antorcha
olímpica que quema todo el disco duro C de la computadora. Este virus vendrá de
una persona conocida que te
tenia en su lista de direcciones.. Es por eso
que debes enviar este mensaje a todos tus contactos.
Es preferible
recibir 25 veces este correo que recibir el virus y abrirlo.. Si recibes el
mensaje llamado: Invitación de FACEBOOK, aunque sea enviado por un amigo, no lo
abras y apaga tu maquina inmediatamente. Es el peor virus anunciado por CNN. Un
nuevo virus ha sido descubierto recientemente que ha sido clasificado por
Microsoft comoel virus mas destructivo que haya existido . Este virus fue
descubierto ayer por la tarde por Mc Afee. Y no hay arreglo aun para esta clase
de virus. Este virus destruye simplemente el Sector Zero del Disco Duro, donde
la información vital de su función es guardada.
ENVIA ESTE E-MAIL A
QUIENES CONOZCAS. COPIA ESTE CORREO A UNO NUEVO Y MANDALO A TODOS TUS AMIGOS.
RECUERDA:
SI LO ENVIAS A ELLOS, NOS BENEFICIAS A TODOS.
Por lo general, los hoax informáticos tienen estos temas:
**Alertas sobre virus incurables
**Falacias sobre personas, instituciones o empresas
**Mensajes de temática religiosa
**Cadenas de solidaridad
**Cadenas de la suerte
**Métodos para hacerse millonario
**Regalos de grandes compañías
**Leyendas urbanas
ASI QUE SI RECIBES UNO DE ESTOS TIPOS DE CADENAS, NO LOS REENVIES.
Wednesday, March 10, 2010
¿Qué es La impersonalizacion? (impersonate Asp.Net - suplantacion)
El archivo Web.config es un archivo XML en el cual se definen las configuraciones de las aplicaciones asp.net, aqui es donde se especifica la impersonalización.
La impersonalización es un concepto a tomar en cuenta en la seguridad en las aplicaciones web. Sin duda, habrán recursos a los que no todo el mundo tendrá acceso, por tanto, por seguridad, estarán restringidos y se requerirá tener permisos para poder usarlos. La pregunta es ¿qué hacer para que cualquier usuario de nuestra aplicación web tenga permisos para usar recursos sin poner en peligro la seguridad?
Una respuesta (entre otras) sería la impersonalización. Cada aplicación web cuenta con su archivo de configuración (Web.config) dentro de este archivo definimos el usuario con el que se va a conectar la aplicación.
Con la etiqueta Identity del web.config podemos impersonar cada aplicación ASP.NET para que se ejecute con un usuario distinto al del framework. Tambien es posible indicar un usuario distinto al del IIS en la misma etiqueta Identity. Indicándole un nombre de usuario y contraseña podemos hacer que la aplicación ASP.NET arranque con este usuario.
Resumen:
**Si la impersonalización False está habilitada entonces la aplicación se ejecuta bajo el usuario definido en el processModel.
La impersonalización es un concepto a tomar en cuenta en la seguridad en las aplicaciones web. Sin duda, habrán recursos a los que no todo el mundo tendrá acceso, por tanto, por seguridad, estarán restringidos y se requerirá tener permisos para poder usarlos. La pregunta es ¿qué hacer para que cualquier usuario de nuestra aplicación web tenga permisos para usar recursos sin poner en peligro la seguridad?
Una respuesta (entre otras) sería la impersonalización. Cada aplicación web cuenta con su archivo de configuración (Web.config) dentro de este archivo definimos el usuario con el que se va a conectar la aplicación.
Con la etiqueta Identity del web.config podemos impersonar cada aplicación ASP.NET para que se ejecute con un usuario distinto al del framework. Tambien es posible indicar un usuario distinto al del IIS en la misma etiqueta Identity. Indicándole un nombre de usuario y contraseña podemos hacer que la aplicación ASP.NET arranque con este usuario.
Resumen:
**Si la impersonalización False está habilitada entonces la aplicación se ejecuta bajo el usuario definido en el processModel.
**Si la impersonalización está en TRUE, pero no hay definido un usuario perteneciente a una cuenta de Windows, ASP.NET impersona al usuario pasado por IIS.
**Si la impersonalización está en TRUE y hay definido un usuario de Windows, en este caso corre bajo la identidad del usuario definido en la entrada indentity
Monday, June 15, 2009
Pasos del ER al modelo relacional
Palabras claves: pasos transformación del modelo entidad relación extendido al modelo relación. Del ERE AL MER
Es un compilado de varias fuentes a fin de hacerlo más entendible. No solo aplica el entidad relación sino también el entidad relación extendido.
1.- Por cada entidad fuerte (aquella que no necesita de otra para existir), se crea una relación con sus correspondientes atributos.
2.- Por cada entidad débil (aquella que necesita de otra para existir), se crea una relación y su Primary key (PK de ahora en adelante) será igual a "llave parcial o discriminador (aquél atributo cuyo valor es único para cada tupla de la entidad débil) más la PK de su entidad dependiente o propietaria".
3.- Por cada vínculo 1:1
*Cuando la participación sea Total-Total: se crea una relación (caso M:N)
*Cuando la participación sea Total-Parcial: como en el caso 1:N (1: Parcial, N: Total)
*Cuando la participación sea Parcial-Parcial: como en el caso 1:N (El lado 1 ó el lado N se lo deja al criterio del modelador o diseñador)
4.- Por cada vínculo 1:N
La PK de 1 pasa a N como Foreign Key (FK de ahora en adelante)
5.- Por cada vínculo M:N
Se crea una nueva relación con PK= PK1 + PK2
6.- Por cada atributo multivaluado, se crea una nueva relación con PK=PK de entidad base + atributo multivaluado.
Por cada atributo compuesto, se lo descompone y vuelve atómico.
7.- Por cada vínculo n-ario (n>2), se crea una nueva relación PK=PK1 + PK2 + PKn (Esto se debe evitar, por ello nación el MEExtendido)
8.- Esto es para el ENTIDAD-RELACIÓN-EXTENDIDO. Cuando empleamos los conceptos de generalización/especialización. Se tienen 4 opciones:
a) Crear una relación para la superclase con sus atributos correspondientes y una relación para cada subclase con sus atributos más la llave primaria de la superclase.
b) Crear para cada subclase una relación con los artibutos de la superclase más los atributos propios donde la llave primaria será la de la superclase. Esto es válido una disyunción-total
c) Crear una sola relación con todos los atributos de la superclase más un atributo "T" que indica la subclase a la que la tupla pertenece. Esto es cuando no existen muchos atributos de definición para la especialización. Esto válido para especialización+Disyunción.
d) Crear una sola relación con todos los atributos de la superclase más los atributos de las subclases más unos atributos "Ti" cuyo valor lógico nos indicará a qué subclase pertenece la tupla. Esto es válido para especialización-Solapamiento.
Es un compilado de varias fuentes a fin de hacerlo más entendible. No solo aplica el entidad relación sino también el entidad relación extendido.
1.- Por cada entidad fuerte (aquella que no necesita de otra para existir), se crea una relación con sus correspondientes atributos.
2.- Por cada entidad débil (aquella que necesita de otra para existir), se crea una relación y su Primary key (PK de ahora en adelante) será igual a "llave parcial o discriminador (aquél atributo cuyo valor es único para cada tupla de la entidad débil) más la PK de su entidad dependiente o propietaria".
3.- Por cada vínculo 1:1
*Cuando la participación sea Total-Total: se crea una relación (caso M:N)
*Cuando la participación sea Total-Parcial: como en el caso 1:N (1: Parcial, N: Total)
*Cuando la participación sea Parcial-Parcial: como en el caso 1:N (El lado 1 ó el lado N se lo deja al criterio del modelador o diseñador)
4.- Por cada vínculo 1:N
La PK de 1 pasa a N como Foreign Key (FK de ahora en adelante)
5.- Por cada vínculo M:N
Se crea una nueva relación con PK= PK1 + PK2
6.- Por cada atributo multivaluado, se crea una nueva relación con PK=PK de entidad base + atributo multivaluado.
Por cada atributo compuesto, se lo descompone y vuelve atómico.
7.- Por cada vínculo n-ario (n>2), se crea una nueva relación PK=PK1 + PK2 + PKn (Esto se debe evitar, por ello nación el MEExtendido)
8.- Esto es para el ENTIDAD-RELACIÓN-EXTENDIDO. Cuando empleamos los conceptos de generalización/especialización. Se tienen 4 opciones:
a) Crear una relación para la superclase con sus atributos correspondientes y una relación para cada subclase con sus atributos más la llave primaria de la superclase.
b) Crear para cada subclase una relación con los artibutos de la superclase más los atributos propios donde la llave primaria será la de la superclase. Esto es válido una disyunción-total
c) Crear una sola relación con todos los atributos de la superclase más un atributo "T" que indica la subclase a la que la tupla pertenece. Esto es cuando no existen muchos atributos de definición para la especialización. Esto válido para especialización+Disyunción.
d) Crear una sola relación con todos los atributos de la superclase más los atributos de las subclases más unos atributos "Ti" cuyo valor lógico nos indicará a qué subclase pertenece la tupla. Esto es válido para especialización-Solapamiento.
Thursday, June 11, 2009
Cómo optimizar una consulta SQL
¿Para qué optimizamos? Para obtener de manera más rápida y precisa la información, más eficiente. Hay que tomar en cuenta que el bajo rendimiento en el tiempo de respuesta se deben a factores como: el hardware, el software, el SGBD, el diseño, índices mala formulación de las consultas.
A continuación se siguen algunos tips, no son todos los que hay pero es algo para tomar en cuenta.
Diseño de la base de datos
**Las tablas normalizadas permiten reducir al mínimo el espacio ocupado por nuestra base y permiten asegurar la consistencia de la información al mismo tiempo que son muy rápidas para la realización de transacciones, pero generan un mayor tiempo de demora a la hora de consultarlas ya que se deben realizar generalmente la unión de varias tablas, por lo que en caso de necesidad de altas velocidades de respuesta con grandes volúmenes de datos un modelo desnormalizado es más que conveniente teniendo en cuenta todas las implicancias del caso.
**Ajustar al máximo el tamaño de los campos ayuda a no desperdiciar espacio.
**Eliminar todo campo que no sea de utilidad ya que por más que no contenga datos genera retrasos.
Índices
**Los índices son campos que permiten la búsqueda a partir de dicho campo a una velocidad notablemente superior. Sin embargo cuentan con la desventaja que hacen más lenta la actualización, carga y eliminación de los registros ya que por cada modificación en la tabla se deberá modificar también el índice, además se debe tener en cuenta el hecho de que los índices también ocupan espacio en disco. Es por esto que no es factible indexar todos los campos de la base y se hace necesario seleccionarlos cuidadosamente. Cabe destacar que por defecto las tablas no contienen índices por lo que la introducción de estos puede llegar a producir mejoras de más del 100% en algunos casos.
**Los campos que se recomiendan indexar son:
Claves Primarias Claves Foráneas
Campos por los cuales se realizaran búsquedas
Campos por los cuales se va a ordenar
**Siempre conviene indexar tablas con gran cantidad de registros y que van a ser consultadas intensamente.
Formulación de las consultas
**En la medida de lo posible hay que evitar que las sentencias SQL estén embebidas dentro del código de la aplicación. Es mucho más eficaz usar vistas o procedimientos almacenados por que el gestor los guarda compilados. Si se trata de una sentencia embebida el gestor debe compilarla antes de ejecutarla.
**No utilizar SELECT * por que el motor debe leer primero la estructura de la tabla antes de ejecutar la sentencia.
**Seleccionar solo aquellos campos que se necesiten, cada campo extra genera tiempo extra.
**Utilizar Inner Join , left join , right join, para unir las tablas en lugar del where, esto permite que a medida que se declaran las tablas se vallan uniendo mientras que si utilizamos el where el motor genera primero el producto cartesiano de todos los registros de las tablas para luego filtrar las correctas, un trabajo definitivamente lento. (Con respecto a esto, aún no sé. Eso se suele decir, sin embargo un docente de mi universidad me dijo que es indiferente.)
**Especificar el alias de la tabla delante de cada campo definido en el select, esto le ahorra tiempo al motor de tener que buscar a que tabla pertenece el campo especificado.
**Evitar el uso de Cast. Y formulas dentro de las consultas, cada formula y casteo retrasan el motor considerablemente.
**Cuando se utilizan varias tablas dentro de la consulta hay que tener cuidado con el orden empleado en la cláusula FROM. Si deseamos saber cuantos alumnos se matricularon en el año 1996 y escribimos: FROM Alumnos, Matriculas WHERE Alumno.IdAlumno = Matriculas.IdAlumno AND Matriculas.Año = 1996 el gestor recorrerá todos los alumnos para buscar sus matriculas y devolver las correspondientes. Si escribimos FROM Matriculas, Alumnos WHERE Matriculas.Año = 1996 AND Matriculas.IdAlumno = Alumnos.IdAlumnos, el gestor filtra las matrículas y después selecciona los alumnos, de esta forma tiene que recorrer menos registros
A continuación se siguen algunos tips, no son todos los que hay pero es algo para tomar en cuenta.
Diseño de la base de datos
**Las tablas normalizadas permiten reducir al mínimo el espacio ocupado por nuestra base y permiten asegurar la consistencia de la información al mismo tiempo que son muy rápidas para la realización de transacciones, pero generan un mayor tiempo de demora a la hora de consultarlas ya que se deben realizar generalmente la unión de varias tablas, por lo que en caso de necesidad de altas velocidades de respuesta con grandes volúmenes de datos un modelo desnormalizado es más que conveniente teniendo en cuenta todas las implicancias del caso.
**Ajustar al máximo el tamaño de los campos ayuda a no desperdiciar espacio.
**Eliminar todo campo que no sea de utilidad ya que por más que no contenga datos genera retrasos.
Índices
**Los índices son campos que permiten la búsqueda a partir de dicho campo a una velocidad notablemente superior. Sin embargo cuentan con la desventaja que hacen más lenta la actualización, carga y eliminación de los registros ya que por cada modificación en la tabla se deberá modificar también el índice, además se debe tener en cuenta el hecho de que los índices también ocupan espacio en disco. Es por esto que no es factible indexar todos los campos de la base y se hace necesario seleccionarlos cuidadosamente. Cabe destacar que por defecto las tablas no contienen índices por lo que la introducción de estos puede llegar a producir mejoras de más del 100% en algunos casos.
**Los campos que se recomiendan indexar son:
Claves Primarias Claves Foráneas
Campos por los cuales se realizaran búsquedas
Campos por los cuales se va a ordenar
**Siempre conviene indexar tablas con gran cantidad de registros y que van a ser consultadas intensamente.
Formulación de las consultas
**En la medida de lo posible hay que evitar que las sentencias SQL estén embebidas dentro del código de la aplicación. Es mucho más eficaz usar vistas o procedimientos almacenados por que el gestor los guarda compilados. Si se trata de una sentencia embebida el gestor debe compilarla antes de ejecutarla.
**No utilizar SELECT * por que el motor debe leer primero la estructura de la tabla antes de ejecutar la sentencia.
**Seleccionar solo aquellos campos que se necesiten, cada campo extra genera tiempo extra.
**Utilizar Inner Join , left join , right join, para unir las tablas en lugar del where, esto permite que a medida que se declaran las tablas se vallan uniendo mientras que si utilizamos el where el motor genera primero el producto cartesiano de todos los registros de las tablas para luego filtrar las correctas, un trabajo definitivamente lento. (Con respecto a esto, aún no sé. Eso se suele decir, sin embargo un docente de mi universidad me dijo que es indiferente.)
**Especificar el alias de la tabla delante de cada campo definido en el select, esto le ahorra tiempo al motor de tener que buscar a que tabla pertenece el campo especificado.
**Evitar el uso de Cast. Y formulas dentro de las consultas, cada formula y casteo retrasan el motor considerablemente.
**Cuando se utilizan varias tablas dentro de la consulta hay que tener cuidado con el orden empleado en la cláusula FROM. Si deseamos saber cuantos alumnos se matricularon en el año 1996 y escribimos: FROM Alumnos, Matriculas WHERE Alumno.IdAlumno = Matriculas.IdAlumno AND Matriculas.Año = 1996 el gestor recorrerá todos los alumnos para buscar sus matriculas y devolver las correspondientes. Si escribimos FROM Matriculas, Alumnos WHERE Matriculas.Año = 1996 AND Matriculas.IdAlumno = Alumnos.IdAlumnos, el gestor filtra las matrículas y después selecciona los alumnos, de esta forma tiene que recorrer menos registros
Subscribe to:
Posts (Atom)