/// <summary> /// Metodo que sirve para reemplazar los Token de Parámetros /// </summary> /// <param name="pCatalogo">Filtro de tipo Catalogo</param> /// <returns></returns> public List <Token> AddParametroTokens(List <Token> tokens, long CodigoEntidad) { List <String> mensajes = new List <string>(); CatalogoLogicaNegocio bl = new CatalogoLogicaNegocio(); if (CodigoEntidad == 0) { throw new ArgumentNullException("CodigoEntidad"); } tokens.Add(new Token("%Parametro.HorasPassword%", bl.ObtenerCatalogo(new Catalogo { CodigoParametro = "HorasPassword" }).Catalogo.Descripcion)); return(tokens); //event notification //_eventPublisher.EntityTokensAdded(store, tokens); }
/// <summary> /// Método que valida la contraseña del usuario. /// </summary> /// <param name="oUsuario"></param> /// <returns></returns> public RespuestaUsuario ValidarContrasenna(Usuario oUsuario) { var oRespuesta = new RespuestaUsuario { Respuesta = new Respuesta() { CodMensaje = Respuesta.CodError } }; try { var catalogoLn = new CatalogoLogicaNegocio(); //desencriptamos la contraseña enviada string clave = oEncriptador.DesEncriptar(oUsuario.Clave); /************* Obtener Longitud *******************/ var longitudPassword = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.LongitudPassword }).Catalogo.Identificador); /************* Obtener Numeros *******************/ var cantidadNumeros = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.CntMinNumPassword }).Catalogo.Identificador); /************* Obtener Mayusculas *******************/ var cantidadMayusculas = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.CntMinMayusculasPassword }).Catalogo.Identificador); /************* Obtener Simbolos *******************/ var cantidadSimbolos = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.CntMinSimbolosPassword }).Catalogo.Identificador); int contNum = 0; int contMayus = 0; int contSymbol = 0; foreach (char c in clave) { if (char.IsNumber(c)) { contNum++; } else if (char.IsUpper(c)) { contMayus++; } else if (char.IsSymbol(c) | char.IsPunctuation(c)) { contSymbol++; } } var oMensajes = new List <string>(); //Valida la cantidad mínima de caracteres if (oUsuario.Clave.Length < longitudPassword) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinCaracteres, longitudPassword)); } //Valida la cantidad mínima de números if (contNum < cantidadNumeros) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinNumeros, cantidadNumeros)); } //Valida la cantidad mínima de mayúsculas if (contMayus < cantidadMayusculas) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinMayusculas, cantidadMayusculas)); } //Valida la cantidad mínima de símbolos if (contSymbol < cantidadSimbolos) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinSimbolos, cantidadSimbolos)); } if (oMensajes.Count != 0) { //Contraseña incorrecta oRespuesta.Respuesta.Mensaje = oMensajes.FirstOrDefault(); oRespuesta.Respuesta.Mensajes = oMensajes; return(oRespuesta); } //contraseña correcta return(new RespuestaUsuario() { Respuesta = new Respuesta() { CodMensaje = Respuesta.CodExitoso } }); } catch (Exception oException) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(oException, oUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, oException, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, oException.Message, Respuesta.CodNoValido) }); } }