private void btnLogin_Click(object sender, EventArgs e)
 {
     if (menuLateral.Width >= 220)
     {
         string usuario = tbUsuario.Text;
         string pass    = tbPass.Text;
         accionLogearDesloguear(usuario, pass);
         UsuarioConectado.resetearUsuarioConectado();
     }
     else
     {
         this.lblConectado.Visible = true;
         if (btnCursos.BackColor != Color.FromArgb(73, 55, 34))
         {
             this.tmMostrarMenu.Enabled = true;
         }
         else
         {
             menuLateral.Width = 220;
         }
         if (UsuarioConectado.nombre.Equals("invitado"))
         {
             m.mostrarLogin(this.tmMostrarLogin);
         }
     }
 }
Beispiel #2
0
        public UsuarioConectado Login(string usuario, string senha)
        {
            UsuarioConectado usuarioConectado = _validadorUsuario.Validar(usuario, senha);

            _authenticationProvider.Autenticar(usuarioConectado);
            return(usuarioConectado);
        }
Beispiel #3
0
        public void ConsigoMeConectarComCredenciaisValidas()
        {
            UsuarioConectado usuarioConectado = _validadorUsuario.Validar("logistica", "123");

            Assert.IsNotNull(usuarioConectado);
            Assert.AreEqual("logistica", usuarioConectado.Login);
            Assert.AreEqual(1, usuarioConectado.Perfis.Count(x => x == Enumeradores.Perfil.CompradorLogistica));

            _usuariosMock.Verify(x => x.BuscaPorLogin(It.IsAny <string>()), Times.Once());
        }
        public IActionResult Login(string username, string password)
        {
            List <Producto>  lsp       = new List <Producto>();
            UsuarioConectado userLoged = new UsuarioConectado();
            Usuario          usuario   = new Usuario();

            //Las propiedades tienen que hacer match con el DTO para poder comunicarse.
            usuario.UserName = username;
            usuario.Password = password;
            //Consumir api para obtener account y password y validar
            var client = new HttpClient();

            client.BaseAddress = new Uri("http://academysecuritydos.azurewebsites.net/");
            //Mandamos la peticion por el body hacia la api de security
            string json        = JsonConvert.SerializeObject(usuario);
            var    httpcontent = new StringContent(json, Encoding.UTF8, "application/json");
            var    response    = client.PostAsync("api/Sessions/Login", httpcontent);

            response.Wait();
            var result         = response.Result;
            var readresult     = result.Content.ReadAsStringAsync().Result;
            var resultadoFinal = JsonConvert.DeserializeObject <UsuarioConectado>(readresult);

            if (resultadoFinal.IsLogged != false)
            {
                HttpContext.Session.SetString("SessionUser", JsonConvert.SerializeObject(resultadoFinal.Username));
                HttpContext.Session.SetString("UserRol", JsonConvert.SerializeObject(resultadoFinal.Role));
                if (HttpContext.Session.GetString("SessionUser") != null)
                {
                    TempData["username"] = JsonConvert.DeserializeObject(HttpContext.Session.GetString("SessionUser"));
                    TempData["rol"]      = JsonConvert.DeserializeObject(HttpContext.Session.GetString("UserRol"));
                }
                //Crearmos el objeto que recibira nuestro metodo para la llamada a la api
                //LogEntity logUI = new LogEntity();
                //logUI.aplicacion = "User Interface";
                //logUI.mensaje = "El usuario\t" + resultadoFinal.Username + "\tha iniciado sesion";
                //logUI.fecha = DateTime.Now;
                ////Instanciamos el Log para poder consumir el metodo de conexion a la Api del archivo Dll
                //Log log = new Log();
                //log.ConnectToWebAPI(logUI);
                //return PartialView("~/Views/Producto/Todos.cshtml",lsp);
                return(RedirectToAction("Todos", "Producto", new { id = 1 }));
            }
            else
            {
                ViewBag.error = "Invalid Account";
                return(View("Index"));
            }
        }
Beispiel #5
0
 public void Autenticar(UsuarioConectado usuarioConectado)
 {
     //if (HttpContext.Current.User.Identity.IsAuthenticated)
     //{
     //    Desconectar();
     //}
     //Se o parâmetro createPersistentCookie for setado para true tem que criar
     //um novo filtro de autorização, que deve levar em contato se a sessão já expirou ou não.
     FormsAuthentication.SetAuthCookie(usuarioConectado.NomeCompleto, false);
     HttpContext.Current.Session["UsuarioConectado"] = usuarioConectado;
     ObjectFactory.Configure(c => c.For <UsuarioConectado>()
                             .LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.HybridHttpSession))
                             .Use(() => (UsuarioConectado)HttpContext.Current.Session["UsuarioConectado"])
                             );
 }
Beispiel #6
0
 /// <summary>
 /// Agrega una CuentaModelYaLogeada en la sesion, si esta aun no se encuentra en la sesion
 /// </summary>
 /// <param name="cuenta">CuentaModel</param>
 /// <param name="hiloDeSeguimientoDelCliente">Thread</param>
 /// <returns>Verdadeo si la cuenta se logeo correctamente, falso si no</returns>
 public Boolean AgregarCuentaLogeada(CuentaModel cuenta, Thread hiloDeSeguimientoDelCliente)
 {
     lock (ObjetoSincronizador)
     {
         foreach (CuentaModel cuentaLogeada in CuentasLogeadas.Keys)
         {
             if (cuentaLogeada.NombreUsuario == cuenta.NombreUsuario)
             {
                 return(false);
             }
         }
         CuentasLogeadas.Add(cuenta, hiloDeSeguimientoDelCliente);
     }
     UsuarioConectado?.Invoke(cuenta);
     return(true);
 }
Beispiel #7
0
        public void RecibirConexion(string Id)
        {
            UsuarioConectado enLista = lista.FirstOrDefault(x => x.id == Id);

            if (enLista == null)
            {
                var agregar = new UsuarioConectado();
                agregar.id           = Id;
                agregar.connectionId = Context.ConnectionId;
                lista.Add(agregar);
            }
            else
            {
                enLista.connectionId = Context.ConnectionId;
            }
        }
Beispiel #8
0
        private void recibeDatos(IAsyncResult ar)
        {
            try
            {
                Socket socket   = (Socket)ar.AsyncState;
                int    received = socket.EndReceive(ar);
                byte[] dataBuf  = new byte[received];
                Array.Copy(receivedBuf, dataBuf, received);

                mensaje = (Encoding.Default.GetString(dataBuf));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }


            string objetoSerializado = mensaje;

            envioMensaje = JsonConvert.DeserializeObject <Mensaje>(mensaje);

            if (envioMensaje.contenidoMensaje == null)
            {
                UsuarioConectado cc = Newtonsoft.Json.JsonConvert.DeserializeObject <UsuarioConectado>(objetoSerializado);
                listaConectados = new List <string>();
                for (int i = 0; i < cc.usuarioConectado.Count; i++)
                {
                    listaConectados.Add(cc.usuarioConectado[i] + " (" + cc.usuarioConectado[i] + ")");
                }
            }
            else
            {
                if (envioMensaje.contenidoMensaje != null)
                {
                    this.Dispatcher.Invoke(() => { recibirMensaje(envioMensaje.contenidoMensaje, envioMensaje.usuarioEmisor); });
                }
            }

            try
            {
                socketCliente.BeginReceive(receivedBuf, 0, receivedBuf.Length, SocketFlags.None, new AsyncCallback(recibeDatos), socketCliente);
            }
            catch (SocketException)
            {
                return;
            }
        }
Beispiel #9
0
        public IActionResult Login(string username, string password)
        {
            List <Producto>  lsp       = new List <Producto>();
            UsuarioConectado userLoged = new UsuarioConectado();
            Usuario          usuario   = new Usuario();

            //Las propiedades tienen que hacer match con el DTO para poder comunicarse.
            usuario.UserName = username;
            usuario.Password = password;

            var resultadoFinal = Api.SecurityApiLogin(URL, pathController, usuario);

            if (resultadoFinal.IsLogged != false)
            {
                ses.SaveSession("SessionUser", resultadoFinal.Username);
                ses.SaveSession("UserRol", resultadoFinal.Role);
                var Username = ses.GetSession("SessionUser");
                var role     = ses.GetSession("UserRol");
                if (Username != null && Username != "" && role != null && role != "")
                {
                    //proceso ViewData or TempData
                    ViewData["username"] = Username;
                    ViewData["rol"]      = role;
                }
                //if (HttpContext.Session.GetString("SessionUser") != null)
                //{
                //    TempData["username"] = JsonConvert.DeserializeObject(HttpContext.Session.GetString("SessionUser"));
                //    TempData["rol"] = JsonConvert.DeserializeObject(HttpContext.Session.GetString("UserRol"));

                //}
                //Crearmos el objeto que recibira nuestro metodo para la llamada a la api
                //LogEntity logUI = new LogEntity();
                //logUI.aplicacion = "User Interface";
                //logUI.mensaje = "El usuario\t" + resultadoFinal.Username + "\tha iniciado sesion";
                //logUI.fecha = DateTime.Now;
                ////Instanciamos el Log para poder consumir el metodo de conexion a la Api del archivo Dll
                //Log log = new Log();
                //log.ConnectToWebAPI(logUI);
                //return PartialView("~/Views/Producto/Todos.cshtml",lsp);
                return(RedirectToAction("Todos", "Producto", new { id = 1 }));
            }
            else
            {
                ViewBag.error = "Invalid Account";
                return(View("Index"));
            }
        }
        public override UsuarioConectado SecurityApiLogin(string url, string pathController, Usuario user)
        {
            UsuarioConectado userloged = new UsuarioConectado();

            if (url.Equals("http://academysecuritydos.azurewebsites.net/"))
            {
                if (pathController.Equals("api/Sessions/Login"))
                {
                    if (user.UserName != null && user.UserName != "" && user.Password != null && user.Password != "")
                    {
                        userloged.Username = user.UserName;
                        userloged.IsLogged = true;
                        userloged.Role     = "EXT";
                        return(userloged);
                    }
                }
            }
            return(userloged);
        }
Beispiel #11
0
        public ActionResult ReceivePost(BotRequest data)
        {
            RequestService servicios = new RequestService();
            MensajesTexto  nuevo     = new Models.Acciones.MensajesTexto();

            Task.Factory.StartNew(() =>
            {
                foreach (var entry in data.entry)
                {
                    foreach (var message in entry.messaging)
                    {
                        if (string.IsNullOrWhiteSpace(message?.message?.text))
                        {
                            continue;
                        }
                        //var msg = "You said: " + message.message.text;
                        //var json = $@" {{recipient: {{  id: {message.sender.id}}},message: {{text: ""{msg + message.sender.id}"" }}}}";
                        //Acciones.PostRaw("https://graph.facebook.com/v3.0/me/messages?access_token=EAAF3NCI0yUQBAMx3ZCirrlZCuYDNoLaD092M4ncaZAYmu03C5Rku5tCPFLZBqmh2LEjD03u6fZAw3NtLhJLO7WEiJuHZCOFSmbEiZAR1DsiZAZBEWdQ9qizdz0HDJCQeH1wZBhG4HVxKddyTtyKxaMBSZCnoXeSCJY4AARmf6C1wmyIOAZDZD", json);

                        if (!ManejoDeInfo.Conectado(message.sender.id))
                        {
                            var respuesta      = DialogFlow.RequestManager.Query(new DialogFlow.Models.Request(new List <string>(), message.message.text, message.sender.id));
                            nuevo.message.text = respuesta.result.fulfillment.speech;
                            nuevo.recipient.id = respuesta.sessionId;
                            if (!respuesta.result.actionIncomplete)
                            {
                                ManejoDeInfo.VerificarRuta(message.sender.id);
                                string mensaje = ManejoDeInfo.RegistrarSolicitud(respuesta.result.parameters, message.sender.id);
                                var hubContext = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();
                                string ruta    = ManejoDeInfo.ObtenerRuta(message.sender.id);
                                if (ChatHub.lista.Count > 0)
                                {
                                    UsuarioConectado jarcodeo = ChatHub.lista.FirstOrDefault(x => x.id == ruta);
                                    FbUser usuario            = Acciones.recuperarContacto(message.sender.id);
                                    hubContext.Clients.Client(jarcodeo.connectionId).recibirMensaje(mensaje, usuario.first_name + " " + usuario.last_name, message.sender.id);
                                }
                            }
                            Acciones.EnviarMensajeTextoAsync(nuevo);
                        }
                        else
                        {
                            if (message.message.text.ToUpper().Contains("DESCONECTAR"))
                            {
                                ManejoDeInfo.Desconectar(message.sender.id);
                            }
                            Task.Factory.StartNew(() =>
                            {
                                //servicios.LlamarPost<dynamic>("http://localhost:61627/api/Message/Mensaje", message);
                                var hubContext = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();
                                string ruta    = ManejoDeInfo.ObtenerRuta(message.sender.id);
                                if (ChatHub.lista.Count > 0)
                                {
                                    UsuarioConectado jarcodeo = ChatHub.lista.FirstOrDefault(x => x.id == ruta);
                                    FbUser usuario            = Acciones.recuperarContacto(message.sender.id);
                                    hubContext.Clients.Client(jarcodeo.connectionId).recibirMensaje(message.message.text, usuario.first_name + " " + usuario.last_name, message.sender.id);
                                }
                            });
                        }
                    }
                }
            });

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Beispiel #12
0
 public static void SubstituirUsuarioConectado(UsuarioConectado usuarioConectado)
 {
     ObjectFactory.Configure(x => x.For <UsuarioConectado>()
                             .HybridHttpOrThreadLocalScoped()
                             .Use(() => usuarioConectado));
 }