/// <summary>
        /// Evento para gestionar la autorización del servicio.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnAuthenticateRequest(object sender, EventArgs e)
        {
            //Indica si la autorización del servicio esta activa
            bool activo      = Convert.ToBoolean(ConfigurationManager.AppSettings["AutorizacionActiva"]);
            bool autenticado = false;

            if (activo)
            {
                var application = (HttpApplication)sender;
                var request     = new HttpRequestWrapper(application.Request);

                string authHeader = request.Headers["Authorization"];

                if (!string.IsNullOrEmpty(authHeader) && (authHeader.Length > 6))
                {
                    if (IsBase64Encoded(authHeader))
                    {
                        string[] svcCredentials = ASCIIEncoding.ASCII.GetString(Convert.FromBase64String(authHeader)).Split(':');
                        if (svcCredentials != null)
                        {
                            if (svcCredentials.Count() == 3)
                            {
                                DTAuthentication usuarioAut = new DTAuthentication();
                                usuarioAut.Module   = svcCredentials[0];
                                usuarioAut.User     = svcCredentials[1];
                                usuarioAut.Password = svcCredentials[2];

                                if (new BMAuthentication().ValidarSeguridad(usuarioAut))
                                {
                                    autenticado = true;
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                autenticado = true;
            }

            if (autenticado)
            {
                var principal = new GenericPrincipal(new GenericIdentity("Amazing"), null);

                Thread.CurrentPrincipal = principal;

                if (HttpContext.Current != null)
                {
                    HttpContext.Current.User = principal;
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Valida si el usuario existe en el archivo json.
        /// </summary>
        /// <param name="objAutenticacion"></param>
        /// <returns></returns>
        public static bool ValidarSeguridad(DTAuthentication objAutenticacion)
        {
            JsonAuthentication ListAutenticacion = new JsonAuthentication();

            bool respuesta = false;

            string rutaArchivo = ObtenerArchivo(ARCHIVO_SEGURIDAD);

            var json = File.ReadAllText(rutaArchivo);

            ListAutenticacion = JsonConvert.DeserializeObject <JsonAuthentication>(json);

            var result = ListAutenticacion.Authentication.Where(s => s.Module == objAutenticacion.Module &&
                                                                s.User == objAutenticacion.User &&
                                                                s.Password == objAutenticacion.Password &&
                                                                s.State == true);

            if (result.Any())
            {
                respuesta = true;
            }
            return(respuesta);
        }
Exemple #3
0
 /// <summary>
 /// Valida si el usuario existe y si está activo.
 /// </summary>
 /// <param name="Autenticacion"></param>
 /// <returns></returns>
 public bool ValidarSeguridad(DTAuthentication Autenticacion)
 {
     return(DTJsonManager.ValidarSeguridad(Autenticacion));
 }