/// <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; } } }
/// <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); }
/// <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)); }