
Login C# con base SQL SERVER y un log
Publicado por nano (14 intervenciones) el 26/02/2016 21:32:04
Muy buenas a todos!!!
La duda que se me plantea es la de poner una autenticación en mi formulario web, donde necesito vuestra colaboración para ir perfilando ideas. El temas es el siguiente:
Ya tengo creada una tabla llamada usuarios en SQL SERVER con usuario y password contra la que se va a loguear el acceso a mi web.
Por otro lado, si la autenticación es correcta tengo que insertar en otra tabla llamada LOG los datos de ese usario tales como id_log(autoincremental),id_usuario, nombre, datetime.now, aplicacion.
Hasta aquí, digamos que es algo mas o menos normal. Mi problema reside cuando yo tengo 5 páginas diferentes para distintos procesos como listar, insertar datos, etc...
Para mas datos todas mis páginas tiene una masterpage.master con una barra de menú con los accesos a las diferentes páginas que os comentaba incluyendo la del login...llamada default.aspx.
Si yo escribiera directamente el nombre de la url en el navegador me carga la página en cuestión cuando lo que necesito es que no carge y vuelva a mi página defaul.aspx. Es posible hacerlo en el event_load con una especie de IsPostBack? En caso afirmativo, contra que dato debo validar? Con el Id_log?
En mi default.aspx tengo ya en un botón una especie de validación donde compara en la tabla usuarios y me inserta los datos del LOG excepto el codigo usuario de la tabla USUARIOS que no se como obtener para añadir al LOG. Lo he puesto con interrogaciones.
SqlConnection conlogin = new SqlConnection("Misdatosdeconexion");
SqlDataAdapter sda = new SqlDataAdapter("Select count(*) From usuarios where nombre='" + txtusuario.Text + "'and pw='" + txtpassword.Text + "'", conlogin);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
{
cls_login cl_log = new cls_login("","","","",0,0,0,DateTime.Now);
cl_log.@usuario = txtusuario.Text;
cl_log.@operacion = "";
cl_log.@error = "E250";
cl_log.@version = "";
cl_log.@codigo = 0;
cl_log.@codigo_usuario = ????????
cl_log.@id_aplicacion = 0;
cl_log.@fecha = DateTime.Now;
cl_log.agregarlogin();
}
else
{
lblmensaje.Text = "ERROR EN LA VALIDACION DEL USUARIO.";
txtusuario.Text = "";
txtpassword.Text = "";
txtusuario.Focus();
}
Espero no haberme extendido mas de la cuenta y haberos aburrido, pues entiendo que son muchas consultas en una para hacer un logueo en condiciones.
Un cordial saludo y gracias de antemano.
Nano.
La duda que se me plantea es la de poner una autenticación en mi formulario web, donde necesito vuestra colaboración para ir perfilando ideas. El temas es el siguiente:
Ya tengo creada una tabla llamada usuarios en SQL SERVER con usuario y password contra la que se va a loguear el acceso a mi web.
Por otro lado, si la autenticación es correcta tengo que insertar en otra tabla llamada LOG los datos de ese usario tales como id_log(autoincremental),id_usuario, nombre, datetime.now, aplicacion.
Hasta aquí, digamos que es algo mas o menos normal. Mi problema reside cuando yo tengo 5 páginas diferentes para distintos procesos como listar, insertar datos, etc...
Para mas datos todas mis páginas tiene una masterpage.master con una barra de menú con los accesos a las diferentes páginas que os comentaba incluyendo la del login...llamada default.aspx.
Si yo escribiera directamente el nombre de la url en el navegador me carga la página en cuestión cuando lo que necesito es que no carge y vuelva a mi página defaul.aspx. Es posible hacerlo en el event_load con una especie de IsPostBack? En caso afirmativo, contra que dato debo validar? Con el Id_log?
En mi default.aspx tengo ya en un botón una especie de validación donde compara en la tabla usuarios y me inserta los datos del LOG excepto el codigo usuario de la tabla USUARIOS que no se como obtener para añadir al LOG. Lo he puesto con interrogaciones.
SqlConnection conlogin = new SqlConnection("Misdatosdeconexion");
SqlDataAdapter sda = new SqlDataAdapter("Select count(*) From usuarios where nombre='" + txtusuario.Text + "'and pw='" + txtpassword.Text + "'", conlogin);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
{
cls_login cl_log = new cls_login("","","","",0,0,0,DateTime.Now);
cl_log.@usuario = txtusuario.Text;
cl_log.@operacion = "";
cl_log.@error = "E250";
cl_log.@version = "";
cl_log.@codigo = 0;
cl_log.@codigo_usuario = ????????
cl_log.@id_aplicacion = 0;
cl_log.@fecha = DateTime.Now;
cl_log.agregarlogin();
}
else
{
lblmensaje.Text = "ERROR EN LA VALIDACION DEL USUARIO.";
txtusuario.Text = "";
txtpassword.Text = "";
txtusuario.Focus();
}
Espero no haberme extendido mas de la cuenta y haberos aburrido, pues entiendo que son muchas consultas en una para hacer un logueo en condiciones.
Un cordial saludo y gracias de antemano.
Nano.
Valora esta pregunta


0