Exemple #1
0
        public async Task <ActionResult> Login(dateUsersModels ObjUser)
        {
            if (!ModelState.IsValid)
            {
                return(View(ObjUser));
            }

            API_Control Service = new API_Control();

            HttpResponseMessage response = await Service.ApiLogin(ObjUser);

            if (response != null)
            {
                switch (response.StatusCode)
                {
                case System.Net.HttpStatusCode.NoContent:
                    ModelState.AddModelError("", "El usuario no se encuentra registrado en la aplicación");
                    return(View(ObjUser));

                case System.Net.HttpStatusCode.Unauthorized:
                    ModelState.AddModelError("", "No esta  autorizado para ingreso en la aplicación");
                    return(View(ObjUser));

                case System.Net.HttpStatusCode.OK:
                    var jsonUser = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                    List <loginUserDTO> logueado = JsonConvert.DeserializeObject <List <loginUserDTO> >(jsonUser);
                    if (logueado.First()._IsActive == false)
                    {
                        ModelState.AddModelError("", "El usuario no se encuentra activo");
                        return(View(ObjUser));
                    }
                    else
                    {
                        FormsAuthentication.SetAuthCookie(logueado.First()._UserStr, false);
                        Session["USER"] = logueado.First()._UserStr;
                        HttpHeaders          headers = response.Headers;
                        IEnumerable <string> values;

                        if (headers.TryGetValues("token", out values))
                        {
                            Session["Token"] = values.First();
                        }

                        return(RedirectToLocal());
                    }

                default:
                    ModelState.AddModelError("", "Ha ocurrido un error en la autenticación, contacte al administrador");
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
Exemple #2
0
        /// <summary>
        /// Metodo de autenticacion que recibe objeto modelo con los datos de autenticacion
        /// </summary>
        /// <param name="userDate"></param>
        /// <returns>HttpResponseMenssaje con respuesta de acceso a la aplicacion</returns>
        public async System.Threading.Tasks.Task <HttpResponseMessage> ApiLogin(dateUsersModels userDate)
        {
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(baseUrl);
                    client.DefaultRequestHeaders.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    StringContent       content  = new StringContent(JsonConvert.SerializeObject(userDate), Encoding.UTF8, "application/json");
                    HttpResponseMessage response = await client.PostAsync(serviceUrl.loginService, content);

                    return(response);
                }
            }
            catch (Exception e)
            {
                //Se debe crear un metodo para registrar en log la excepcion
                throw e;
            }
        }