none
Sistema de seguridad de una aplicación basado en roles RRS feed

  • Pregunta

  • Hola a Todos,

    Estoy trabajando en una aplicación Windows Forms con VB.net 2010  ( o C# 2010) y una DB MySQL.

    Lo que deseo es la aplicación tenga distintos niveles de acceso. y a cada rol o nivel pueda dárseles privilegios de acceso. A algunos no puedan abrir ni siquiera un formulario, mientras que otros sí, pero con restricciones por ejemplo de solo consulta, pero no para ingresar o modificar. 

    No sé cómo hacer eso o que otro sistema de acceso a la aplicación fuera mejor. A ustedes que tienen mucha experiencia en esto les agradecería su colaboración.


    Saludos, Solph.

    sábado, 22 de diciembre de 2012 17:11

Respuestas

  • Hola Solp:

     En esta conversacion Julieta pregunta algo parecido a lo tuyo, no tan sofisticada es la respuesta pero la idea esta sobre la mesa, ahora si la usas aunado a una escriptacion de contraseñas usando Hash y Salt por ejemplo le pondras mucha mas seguridad.

     Te dejo el link de la conversacion:

     Privilegios de Usuarios que accesan al programa en visual basic y SQL

     


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Solp sábado, 30 de marzo de 2013 18:51
    martes, 12 de marzo de 2013 22:11
  • Pues hice esto rapido espero te sirva

    InicioSession obj = new InicioSession();
           
            string error = "";
            string passtocompare;
            string nivel;
    
            private void button1_Click(object sender, EventArgs e)
            {
     
                    obj.iniciarsesion(textbox1.Text, ref passtocompare, ref error, ref nivel);
    
                    if (contra.Text != passtocompare)
                    {
                        MessageBox.Show("usuario o contraseña incorrecta");
    
                        contra.Text = "";
                        textbox1.Text = "";
                        textbox1.Select();
                        
                     }
                    else
                    {
                        MessageBox.Show(error);
                        switch (nivel)
                        {
                            case "1":
                                MessageBox.Show("Hola Admin");
                                break;
                            case "2":
                        
                                Form3 frm3 = new Form3();
                                frm3.Show();
                                break;
                            case "3":
    
                                Form4 frm4 = new Form4();
                                frm4.Show();
                                break;
                            case "4":
                                Form5 frm5 = new Form5();
                                frm5.Show();
                                break;
                            default:
                                MessageBox.Show("Aun no tenemos nada para ti, \n \tGracias.");
                                break;
                        }
                        contra.Text = "";
                    }
                    
                
    
            }

    La BD tiene user, pass y nivel

    Saludos

    
    • Marcado como respuesta Solp sábado, 30 de marzo de 2013 18:54
    jueves, 14 de marzo de 2013 0:52

Todas las respuestas

  • ¿Qué repositorio de cuentas de usuario tiene a su disposición?  En empresas y gente desquiciada como yo :-) usamos Active Directory aún en la red de la casa.  Entonces preferimos utilizar Active Directory para la autenticación y autorización.  La autorización normalmente se verifica contra grupos de seguridad de Active Directory:  Si el usuario (ya previamente autenticado) pertenece al grupo de seguridad XXX entonces puede hacer A y B; si pertenece al grupo YYY entonces también puede hacer C y D, etc.

    Pero si no utiliza Active Directory (o inclusive cuentas locales de Windows con grupos de seguridad locales), necesitaríamos definir su fuente de usuarios y contraseñas y una forma de proveer roles que sea compatible con esa fuente.


    Jose R. MCP
    Code Samples

    sábado, 22 de diciembre de 2012 18:57
    Moderador
  • Hola WebJose,

    Gracias por tu prontitud a colaborar.

    En cuanto a eso practicamente no tengo nada... había creado una tabla de usuario, pensando en que se necesitaría... pero no he empesado a usarlo.

    Me suena interesante lo que dices... de Active Directory... a decir verdad, no conozco nada de eso, cómo se usa ... nada. Te agradecería me empaparas  más del tema, si tienes tiempo para ello.

    Gracias.


    Saludos, Solph.

    domingo, 23 de diciembre de 2012 11:29
  • hola, un poco antiguo el post, pero si es que aun lo necesitas, otra forma aparte de active directory puede ser crearte una tabla de usuarios y en dicha tabla colocar un campo como codperfil, luego en tu programa hacer una clase roles y puedes hacer una funcion en la cual consultes

    if codperfil = 1 then

    mostrar pantalla x

    luego en el load de las pantalla llamas a la clase y muestras los que quieres mostrar, si necesitas codigo te puedo pasar alguno de ejemplo.

    miércoles, 6 de marzo de 2013 15:12
  • Gracias JotapeRojas

    Todavía estoy necesitando opciones...

    Gracias por tu ayuda


    Saludos, Solph.

    lunes, 11 de marzo de 2013 15:36
  • Hola Solp:

     En esta conversacion Julieta pregunta algo parecido a lo tuyo, no tan sofisticada es la respuesta pero la idea esta sobre la mesa, ahora si la usas aunado a una escriptacion de contraseñas usando Hash y Salt por ejemplo le pondras mucha mas seguridad.

     Te dejo el link de la conversacion:

     Privilegios de Usuarios que accesan al programa en visual basic y SQL

     


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Solp sábado, 30 de marzo de 2013 18:51
    martes, 12 de marzo de 2013 22:11
  • Pues hice esto rapido espero te sirva

    InicioSession obj = new InicioSession();
           
            string error = "";
            string passtocompare;
            string nivel;
    
            private void button1_Click(object sender, EventArgs e)
            {
     
                    obj.iniciarsesion(textbox1.Text, ref passtocompare, ref error, ref nivel);
    
                    if (contra.Text != passtocompare)
                    {
                        MessageBox.Show("usuario o contraseña incorrecta");
    
                        contra.Text = "";
                        textbox1.Text = "";
                        textbox1.Select();
                        
                     }
                    else
                    {
                        MessageBox.Show(error);
                        switch (nivel)
                        {
                            case "1":
                                MessageBox.Show("Hola Admin");
                                break;
                            case "2":
                        
                                Form3 frm3 = new Form3();
                                frm3.Show();
                                break;
                            case "3":
    
                                Form4 frm4 = new Form4();
                                frm4.Show();
                                break;
                            case "4":
                                Form5 frm5 = new Form5();
                                frm5.Show();
                                break;
                            default:
                                MessageBox.Show("Aun no tenemos nada para ti, \n \tGracias.");
                                break;
                        }
                        contra.Text = "";
                    }
                    
                
    
            }

    La BD tiene user, pass y nivel

    Saludos

    
    • Marcado como respuesta Solp sábado, 30 de marzo de 2013 18:54
    jueves, 14 de marzo de 2013 0:52
  • Gracias Luis_Escobar.

    He analizado y realmente es lo que me sirve....

    Gracias


    Saludos, Solph.

    sábado, 30 de marzo de 2013 18:50
  • Gracias Ortek_1

    por tu colaboración...

    Me es útil tu información. 


    Saludos, Solph.

    sábado, 30 de marzo de 2013 18:52