Esempio n. 1
0
        public override Task <LoginStatus> AutenticarUsuario(UsuarioAAutenticar request, ServerCallContext context)
        {
            Autenticacion autenticacion = new Autenticacion();
            Usuario       usuario       = autenticacion.AutenticarUsuario(request.Nombre, request.Password);

            LoginStatus status = new LoginStatus();

            if (usuario != null)
            {
                status.Codigo                              = 0;
                status.Mensaje                             = "Autenticacion exitosa.";
                status.UsuarioDelServicio                  = new UsuarioDelServicio();
                status.UsuarioDelServicio.Id               = usuario.Id;
                status.UsuarioDelServicio.Contrasena       = usuario.GetContrasena();
                status.UsuarioDelServicio.NombreDeUsuario  = usuario.NombreDeUsuario;
                status.UsuarioDelServicio.TieneSuscripcion = usuario.TieneSuscripcion;
                if (usuario.IdArtista != null)
                {
                    status.UsuarioDelServicio.IdArtista = usuario.IdArtista;
                }
            }
            else
            {
                status.Codigo  = 1;
                status.Mensaje = "Autenticacion fallida, las credenciales ingresadas no coinciden con alguna registrada en nuestro sistema.";
            }

            return(Task.FromResult(status));
        }
        private void Login()        //Aqui se implementa la autenticacion Active Directory
        {
            while (Jugador == null) //Mientras el jugador no haya sido definido
            {
                try
                {
                    string  json = Reader.ReadLine();                                            // json enviado desde el cliente
                    Jugador deserializedJugador = JsonConvert.DeserializeObject <Jugador>(json); // Esperado: Un objeto jugador en formato JSON

                    if (deserializedJugador != null)                                             // Validar que no sea un jugador null
                    {
                        if (Autenticacion.AutenticarUsuario(deserializedJugador.NombreUsuario, deserializedJugador.Password))
                        {
                            Writer.WriteLine(JsonConvert.SerializeObject("true")); // Confirmacion al cliente de autenticacion exitosa
                            Console.WriteLine("Los credenciales del jugador son correctos!\n");
                            Console.WriteLine("Nombre del jugador: " + deserializedJugador.NombreUsuario + "\n");
                            this.Jugador = deserializedJugador; // Set del jugador
                            entrarSala(Socket);                 // Se entra a la sala
                        }
                        else
                        {
                            Writer.WriteLine(JsonConvert.SerializeObject("false")); // Confirmacion al cliente de autenticacion exitosa
                            Console.WriteLine("Los credenciales del jugador son incorrectos!\n");
                            Disconnect();                                           // Desconectar el cliente en caso de credenciales incorrectos
                        }
                    }
                    else
                    {
                        Writer.WriteLine(JsonConvert.SerializeObject("false")); // Error de autenticacion
                        Thread.Sleep(5000);
                    }
                }
                catch
                {
                    Disconnect(); // Desconectar el cliente en caso de error
                }
            }
        }