SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: normangvs en Domingo 4 de Octubre de 2009, 02:44
-
hola que tal ando haciendo un mi programita y me gustaria ponerle de sistema de seguridad un login con contraseña para ingresar pero no c como se hace y me gustaria que me hecharan una manita con esto.
gracias.
-
hola,
lo que necesitas son dos textBox y un boton,
el primer texbox lo dejas como esta y el segundo textbox le pones la propiedad UseSystemPasswordChar en true para que quedecomo campo contraseña, y si quieres puedes ponerle en la propiedad MaxLength un valor para que al digitar la contraseña solo pueda escribir la cantidad de digitos que tu quieras.
espero ke te sirva ;)
-
gracias me sirvio muxo
pero como le hago para que solo me reconosca un usuario y una contraceña?
-
buenas amigo, fijate como lo he realizado.
pero date cuanto que lo tengo en VB y con Access.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.DialogResult = DialogResult.Cancel
'Me.Close()
'RaiseEvent LoginStatus(LoginStatusENUM.LoginFailed)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Conectando a la base de datos
Dim conBase As New OleDb.OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data Source=E:RecuperadosSagmaSoftarcandb_arcan.mdb;Jet OLEDB:Database Password=Saga20Moal22")
conBase.Close()
Dim strSQL As String
strSQL = "Select * from usuarios where usuario = '" & TextBox1.Text & "' and clave = '" & TextBox2.Text & "'"
Dim daEmp As New OleDb.OleDbDataAdapter(strSQL, conBase)
Dim dsEmp As New DataSet
daEmp.Fill(dsEmp, "Log")
'Si el dataset obtuvo un registro es que si es valido el Usuario y la clave
If dsEmp.Tables("Log").Rows.Count = 1 Then
Me.DialogResult = DialogResult.OK
Me.Close()
'Dim a As New frmmain
'a.Show()
Else
'MessageBox.Show("Mensaje","titulo",System.windows.forms.MessageBosButtons.Accept)
'MessageBox.Show("DESEA ELIMINAR","IMPORTANTE", MessageBoxButtons.OKCancel, MessageBoxIcon.Error)
MessageBox.Show("Usuario o contaseña no valida", "Mensaje de Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
TextBox1.Text = ""
TextBox2.Text = ""
Me.TextBox1.Focus()
End If
End Sub
suerte :comp:
-
Bueno, yo tengo un login que unicamente establece relacion con una clave y te puede dar nivel o establecer privilegios. Es es base access local.
si te interesa manda mensaje.
-
por supuesto me interesa
sera que me explicas un poco es que soy algo nuevo en esto ?
gracias
-
Ok, primero que nada, necesitamos una base acces, que contenga como minimo "Usuario", "Contraseña", "Nombre Completo", y una columna con valor"Si/No";
luego agregarlo al proyecto.
ok, ahora un formulario "Menu Principal" y un formulario "Login","Inicio" o como quieras ponerle.
En el Form "login" necesitas un Label que diga "Ingrese Clave de Usuario", un TextBox donde escribiremmos, de preferencia en propiedades, localiza "Password Char" y agregale un "*". dos Botones uno btok y el otro btsalir.
yo le he agregado, sonido y que me desactive el boton cerrar del formulario y al pulsar las teclas Alt. + F4 no me cierre el formulario solo el boton cerrar lo puede hacer.
Da doble click sobre btsalir y te mandara al codigo en el cual debera quedar asi.
#region - // Boton Cerrar -
private void btsalir_Click(object sender, EventArgs e)
{
this.Dispose(); // o This.Application.Exit();
}
#endregion continuo abajo...
-
ahora vulve al diseñador de formulario y desde Origen de Datos, jala el datagrind de usuarios, esto agregara, un navogator, dataset , tableadapter. borra el datagrind despues de haber agregado estos elementos.
Agrega el siguiente codigo;
#region - // Realiza la Busqueda y en su caso da acceso
private void proceso()
{
{
#region - Crea el acceso y busqueda a las tablas -
DataTable miTabla = dsvehiculos.Accesos; // este es el dataset y la tabla que utilizo
DataRowCollection cfilas = miTabla.Rows;
DataRow[] filaBuscada;
string NL = Environment.NewLine;
string criterio = "[Password] Like '" + ctpassword.Text + "'"; // este busca en la Columna "Password"(en micaso) lo que esta en la caja de texto
#endregion
#region - Busca en la tabla y si no encuentra manda el form "Error" -
filaBuscada = miTabla.Select(criterio);
if (filaBuscada.GetUpperBound(0) == -1)
{
error.Play(); //ojo, solo si has agregado para sonido sino borralo
Error frm = new Error(); // y en lugar de llamar a otro formulario como lo hago yo
frm.Show(); // agrega un MESSAGEBOX.
this.ctpassword.Clear();
return;
}
#endregion
#region - Busca y al encontrar da acceso y carga usuario y privilegios -
int i, j;
for (i = 0; i <= filaBuscada.GetUpperBound(0); i++)
{
{
for (j = 0; j <= cfilas.Count - 1; j++)
if (cfilas[j].Equals(filaBuscada))
{
accesosBindingSource.Position = j;
tiporeg = "Modificaciones";
Temporizador.Stop();
string mensaje = "Acceso autorizado a : " + Environment.NewLine;
mensaje += "" + Environment.NewLine;
mensaje += dsvehiculos.Accesos[accesosBindingSource.Position].Users; esta linea hace que aparesca el nombre de usuario en el mensaje
info.Play();
MessageBox.Show(mensaje, "Administrador.Accesos",
MessageBoxButtons.OK, MessageBoxIcon.Question);
usuario = dsvehiculos.Accesos[accesosBindingSource.Position].Users;// esta linea esta de mas, no realiza nada.
MenuPrincipal frm = new MenuPrincipal();
frm.usuario1 = dsvehiculos.Accesos[accesosBindingSource.Position].Descripcion_Usuario;
frm.nivel = dsvehiculos.Accesos[accesosBindingSource.Position].Administrar;
//this.ShowIcon = false;
//this.ShowInTaskbar = false;
this.Hide();
frm.ShowDialog();
}
}
}
#endregion
}
}
#endregion
-
MenuPrincipal frm = new MenuPrincipal(); // esta linea asiga el valor a frm.
frm.usuario1 = dsvehiculos.Accesos[accesosBindingSource.Position].Descripcion_Usuario; //esta le asigna valor a public string Usuario1 que esta en menuprincipal, y ese valor a su vez nos permitira hacer otra cosa mas adelante.
frm.nivel = dsvehiculos.Accesos[accesosBindingSource.Position].Administrar;
//esta linea nos dara los privilegios
this.Hide(); // esta esconde el formulario actual despues de haber invocado al Menuprincipal.
frm.ShowDialog(); // llamamos o invocamos Menu Principal
en MenuPrincipal crea dos variables public string usuario1; y public bool nivel;
crearemos un Menustrip y un statusstrip, el primero le vamos a poner varios menus los que queras pero renombralos por ejemplo mnuAbrir, mnuAdministrar, etc
al segundo
crea un statuslabel y nombralo etusuario, en propiedades: autosize = false, size =250,30;
-
ahora creamos el siguiente codigo que pondremos en el evento load de "Menuprincipal";
private void Administrar_nivel()
{
entrada.Play(); //
etusuario.Text = usuario1;
mnu_altas.Enabled = nivel;
mnu_modif.Enabled = nivel;
mnu_registros.Enabled = nivel;
mnu_apagarpc.Enabled = nivel;
mnu_reiniciar.Enabled = nivel;
}
esto lo que hace es que el nombre del usuario guardado en usuario1 se escribira en etusuario, en la barra de estado.
y nivel si el valor es si, o no le dara acceso a los menus que esten habilitados o no.
Este es mi evento Load;
#region - Evento Load del Form -
private void MenuPrincipal_Load(object sender, EventArgs e)
{
botoncerrar();// Elimina el Boton Cerrar del Formulario
Administrar_nivel();//Crea los Privilegios de usuario y lo muestra.
etfecha.Text = DateTime.Now.ToLongDateString();
}
espero te sirva y comenta tus dudas, espero poder subir el codigo para que lo descargues y tranajes con el.
Suerte
#endregion