none
Autenticacion con c# RRS feed

  • Pregunta

  • Buenas, tengo una base de datos (SqlServer) conectada con dos tablas, UsuariosAplicacionExterna (almacena info de los usuarios con permiso para la aplicación, con ID como PK), AplicacionExterna (almacena el tipo de aplicación con su correspondiente ID), y la tabla satélite AplicacionExterna_UsuarioAplicacionExterna (almacena el ID de cada una de las anteriores tablas).

    La relación es de n a n, la cuestión a realizar es implementar en C# una autenticación para restringir el acceso a la aplicación, de tal forma que por ejemplo el usuario deba introducir el DNI y entonces comprobar si esta en la base para darle acceso o no.

    Me preguntaba como podría realizar esa consulta para devolver un bool que confirme acceso o no.

    Esto es lo que estaba intentando sin éxito:

    publicboolValidar(stringNIF)

               {

                  

    using(EntityConnectionconn = newEntityConnection("data source = 192.168.88.35; initial catalog = PortalEmpleado; user id = adminportal; password = PortalAdmin08"))

                   {

                       conn.Open();

                      

    // Create a query that takes two parameters.


                      

    stringesqlQuery =

                      

    @"SELECT * FROM AEX_UsuariosAplicacionExterna

                           INNER JOIN AEX_AplicacionExterna_UsuarioAplicacionExterna ON AEX_UsuariosAplicacionExterna.ID = AEX_AplicacionExterna_UsuarioAplicacionExterna.ID_UsuarioAplicacion

                           INNER JOIN AEX_AplicacionExterna ON AEX_AplicacionExterna_UsuarioAplicacionExterna.ID_Aplicacion = AEX_AplicacionExterna.ID

                            WHERE AEX_UsuariosAplicacionExterna.DNI = @nif"

    ;

                      

    using(EntityCommandcmd = newEntityCommand(esqlQuery, conn))

                       {

                          

    // Create two parameters and add them to


                          

    // the EntityCommand's Parameters collection


                          

    EntityParameterparam1 = newEntityParameter();

                           param1.ParameterName =

    "nif";

                           param1.Value = NIF;

                           cmd.Parameters.Add(param1);

                          

    using(DbDataReaderrdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess))

                           {

                              

    if(rdr != null)

                                  

    returntrue;

                              

    else


                                  

    returnfalse;

                           }

                       }

                       conn.Close();

                   }

               }

    Llamada al método:

    private

    voidButton_Click2(objectsender, RoutedEventArgse)

            {

               

    AutenticationServiceaser = newAutenticationService();

               

    if(aser.Validar(NIF.Text))

                   

    MessageBox.Show("Usuario correcto");

               

    else


                   

    MessageBox.Show("Usuario incorrecto");

            }

    Muchas Gracias.

    miércoles, 12 de julio de 2017 8:41