Documente Academic
Documente Profesional
Documente Cultură
NET
Posted: diciembre 3, 2008 in Categoria All
12
Hace poco me escribieron un comentario sobre lo interesante que les pareci en postear un articulo sobre seguridad en aplicaciones web, de hecho me comentaron que queran hacer Login a una base de datos independiente, es decir, desde Cero bueno a continuacin les presento de manera detallada como deben hacer para lograr los resultados. Siempre tomanto en cuenta la seguridad. POR FAVOR ZOOM A LA PAGINA PARA QUE PUEDAN VISUALIZAR MEJOR LAS IMAGENES.
Paso 1.
Acostumbro a trabajar con procedimientos almacenados, por eso de trabajar o hacer consultas a mi base de datos mediante parmetros. Abro el SQLSERVER 2005 EXPRESS EDITION, y comienzo a crear mi base de datos con sus respectivas tablas.
Campos:
Paso 2.
Comenzamos a llenar la tabla y posteriormente creamos nuestro Stored Procedure. Importante saber algo, QUE ES UN PROCEDIMIENTO ALMACENADO??
Es un programa que reside en un proveedor de datos, estos se ejecutan directamente en el motor, logrando eficiencia en el proceso. y deshacindose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes. Internamente poseen cdigo T-SQL.
Procedimiento Almacenado:
directorio. Si todo esta bien, entonces el resultado seria: Comandos completados correctamente.
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[loginusuario](@identificacion as varchar(50),@nombreusuario as varchar(50)) AS BEGIN Select id,nombre from dbo.usuario where id=@identificacion and nombre=@nombreusuario END
Clic en Aceptar y si todo esta bien, aparecer el registro que estamos buscando. As:
Paso 3.
Nos vamos a Visual Studio, y comenzamos a colocar nuestro controles, para darle el aspecto del Login del usuario y validar su entrada.
2 Cuadros de Texto
1 Botn
1 Label (esto es a que solo voy a probar que verdaderamente el usuario existe)
Un ejemplo seria: Es que al validar el usuario me envi a una pagina de solo para miembros como el post pasado. Recuerdas?? Espero que si
Crear importaciones hacia mi proveedor, y trabajar con el procedimiento almacenado antes creado.
Paso 4.
Codificar: Doble Clic en el botn y lo primero que hacemos es trabar con las importaciones (Imports)
Como estamos trabajando con seguridad, la idea es colocar dentro del web.config la cadena de conexin, dentro de los tabs
<connectionStrings>
Aqu </connectionStrings>
<connectionStrings> <add name="conexion" connectionString="Data Source=(local)\sqlexpress; initial catalog=DemostracionLogin; integrated security=true" providerName="System.Data.SqlClient"/> </connectionStrings>
Noten que he colocando el add name= conexin es un nombre cualquiera que le he colocado, puedes colocarle el que desees. La idea es identificar tu conexin.
Nota: Como vamos a trabajar con el archivo de configuracin, debemos agregar otro Imports. As:
Noten que hay entre parntesis el nombre conexin , estamos haciendo referencia a el nombre de mi cadena que se encuentra en el web.config
B.- Declaramos una variable de tipo SQLConexin y le pasamos la conexin de tipo String antes creada.
C.- Luego creamos una variable de tipo SqlCommand y le pasamos los parmetros que son:
1.
2.
D.- Debemos indicarle a la variable de tipo SqlCommand que la consulta hacer ser hacia un procedimiento almacenado.
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection.Open()
F.- Ahora debemos indicar que cuales son los parmetros que debemos pasarle, al procedimiento almacenado y que estos valores vendrn a partir de la introduccin de los datos en los cuadros de textos.
G.- Una vez hecho lo anterior, pasamos a recorrer esos datos con el mtodo ExecuteReader para que finalmente verifique si verdaderamente el usuario con sus respectivos datos existe. Para capturar erres en caso que existan, es recomendable trabajar con bloques de excepciones.
Try
Catch ex As Exception
End Try
H.- Partimos de una condicin, si los datos pasados son verdaderos, entonces, mustrame un mensajes que diga Bienvenidos Usuario, en caso contrario, El usuario no existe
If dr.Read Then
End If
I.- En caso de alguna anomala, conexin entre otros capturamos el error producido con:
Y Cerramos conexin:
cmd.Connection.Close()
Cdigo Completo:
Ejecucin.
1.=
2.=
FormsAuthentication.RedirectFromLoginPage(txtnombre.Text, False)
Podemos hacer que se dirija a una pagina solo para aquellos que se han autenticado.
1.
Cambia el nombre que de la actual pagina, colcale Login.aspx Agrega un nuevo elemento WebForm que se llame Default.aspx Listo!!! Prueba para que veas lo que hace.
2.