private static Result ValidacionCambiarClaveWeb(RequestCambioClave request) { try { switch (request.TipoCambioClave) { case TipoCambioClave.Sys: break; case TipoCambioClave.Ui: if (string.IsNullOrEmpty(request.ClaveAntigua) || string.IsNullOrEmpty(request.ClaveNueva) || string.IsNullOrEmpty(request.ClaveNuevaConfirmada)) { throw new Exception("La contraseña no puede estar vacia."); } if (request.ClaveNueva != request.ClaveNuevaConfirmada) { throw new Exception("Contraseña nueva no coincide."); } break; } return(new Result { Success = true }); } catch (Exception ex) { return(new Result { Success = false, Message = ex.Message }); } }
public bool CambiarContrasenia(RequestCambioClave request) { bool done = false; SimpleInteroperableEncryption crypter = new SimpleInteroperableEncryption(WebConfigReader.SemillaEncriptacionPublica); //ENCRIPTAMOS LAS CONTRASEÑAS request.ClaveAntigua = crypter.Encrypt(request.ClaveAntigua); request.ClaveNueva = crypter.Encrypt(request.ClaveNueva); request.ClaveNuevaConfirmada = crypter.Encrypt(request.ClaveNuevaConfirmada); request.Dominio = WebConfigReader.DominioAplicacion; request.Acronimo = WebConfigReader.AcronimoAplicacion; request.TipoCambioClave = TipoCambioClave.Ui; ResponseCambioClave response = (new SeguridadProxyRest()).CambiarClaveWeb(request); if (response.Result.Satisfactorio == false) { throw new Exception(response.Result.Mensaje); } done = true; return(done); }
public bool ResetarContrasenia(RequestCambioClave request) { bool done = false; SimpleInteroperableEncryption crypter = new SimpleInteroperableEncryption(WebConfigReader.SemillaEncriptacionPublica); string contraseniaGenerada = Helper.GenerarContrasenia(); request.ClaveAntigua = request.ClaveNuevaConfirmada = request.ClaveNueva = crypter.Encrypt(contraseniaGenerada); request.Dominio = WebConfigReader.DominioAplicacion; request.Acronimo = WebConfigReader.AcronimoAplicacion; request.TipoCambioClave = TipoCambioClave.Sys; ResponseCambioClave response = (new SeguridadProxyRest()).CambiarClaveWeb(request); if (response.Result.Satisfactorio == false) { throw new Exception(response.Result.Mensaje); } this.NotificarCambioConstraseniaMSC(response.CodigoUsuario, response.Correo, response.Nombres, contraseniaGenerada); done = true; return(done); }
public bool CambiarClave(RequestCambioClave request) { var url = ConfigurationManager.AppSettings["UrlCambiarClave"]; //var url = "http://tramoldev01.tramarsa.com.pe/GRSeguridad/SeguridadGR.svc/CambiarClave"; var responseBusquedaDocumentoOrigen = DeserializarJSON <RequestCambioClave, bool>(request, url); return(responseBusquedaDocumentoOrigen); }
public ResponseCambioClave CambiarClaveWeb(RequestCambioClave request) { var url = ConfigurationManager.AppSettings["UrlCambiarClaveWeb"]; //var url = "http://tramoldev01.tramarsa.com.pe/GRSeguridad3/SeguridadGR.svc/CambiarClaveWeb"; //var url = "http://localhost:18665/SeguridadGR.svc/CambiarClaveWeb"; var response = DeserializarJSON <RequestCambioClave, ResponseCambioClave>(request, url); if (response == null) { throw new Exception(string.Format("Problemas con el servicio: {0}", url)); } return(response); }
public bool CambiarConstraseniaMSC(RequestCambioClave request) { bool done = false; Result result = this.ValidacionCambiarConstraseniaMSC(request); if (result.Satisfactorio == false) { throw new Exception(result.Mensaje); } SimpleInteroperableEncryption crypter = new SimpleInteroperableEncryption(WebConfigReader.SemillaEncriptacionPublica); string contraseniaGenerada = string.Empty; if (request.TipoCambioClave == TipoCambioClave.Sys) { contraseniaGenerada = Helper.GenerarContrasenia(); request.ClaveAntigua = request.ClaveNuevaConfirmada = request.ClaveNueva = crypter.Encrypt(contraseniaGenerada); } else { //ENCRIPTAMOS LAS CONTRASEÑAS request.ClaveAntigua = crypter.Encrypt(request.ClaveAntigua); request.ClaveNueva = crypter.Encrypt(request.ClaveNueva); request.ClaveNuevaConfirmada = crypter.Encrypt(request.ClaveNuevaConfirmada); } request.Dominio = WebConfigReader.DominioAplicacion; request.Acronimo = WebConfigReader.AcronimoAplicacion; ResponseCambioClave response = (new SeguridadProxyRest()).CambiarClaveWeb(request); if (response.Result.Satisfactorio == false) { throw new Exception(response.Result.Mensaje); } //ENVIAMOS EL CORREO if (request.TipoCambioClave == TipoCambioClave.Sys) { this.NotificarCambioConstraseniaMSC(response.CodigoUsuario, response.Correo, response.Nombres, contraseniaGenerada); } done = true; return(done); }
public ResponseCambioClave CambiarClave(RequestCambioClave request) { var response = new ResponseCambioClave(); try { response = SeguridadBL.CambiarClaveWeb(request); response.Resultado.Success = true; } catch (Exception ex) { response.Resultado.Message = ex.Message; response.Resultado.ErrCode = ex.GetHashCode().ToString(); if (ex.InnerException != null) { response.Resultado.Messages.Add(new Result { Message = ex.InnerException.Message }); } } return(response); }
internal bool CambiarClave(RequestCambioClave request) { return(DeserializarJSON <RequestCambioClave, bool>(request, string.Format("{0}/CambiarClave", Url))); }
/// <summary> /// Cambia la contraseña de un usuario externo, si el campo es vacio se crea una contraseña, de lo contrario registra al constraseña enviada. /// </summary> /// <param name="request">Constraseña a registrar</param> /// <returns>Contraseña generada</returns> public static ResponseCambioClave CambiarClaveWeb(RequestCambioClave request) { ResponseCambioClave response = new ResponseCambioClave(); var publicCrypter = new SimpleInteroperableEncryption(); var info = GetInfoBasicaUsuariosByCodigo(new RequestInfoBasicaUsuarioDTO { CodigoUsuario = request.CodigoUsuario, Dominio = request.Dominio }); if (!info.Resultado.Success) { throw new InvalidOperationException("El usuario no existe!"); } if (info.InfoBasica.Tipo != "E") { throw new InvalidOperationException("Sólo los usuarios externos pueden cambiar su contraseña"); } //SI SE HA SOLICITADO CONTRASEÑA, SE VALIDA LA CONTRASEÑA ANTIGUA if (request.TipoCambioClave == TipoCambioClave.Ui) { // Comprobamos si el campo de Respuesta Secreta se encuentra lleno para validar // que el usuario se olvidó se contraseña y posteriormente hacer el cambio. if (string.IsNullOrEmpty(request.RespuestaSecreta)) { ResponseLoginUsuario responseLogin = Login(new RequestLogin { CodigoUsuario = request.CodigoUsuario, Clave = publicCrypter.Decrypt(request.ClaveAntigua), Dominio = request.Dominio, AcronimoAplicacion = request.Acronimo }); if (!responseLogin.Resultado.Success) { throw new Exception("La contraseña es incorrecta."); } } else { // Comprobamos que la respuesta a la pregunta Secreta sea válida. using (var ctx = new SeguridadEntities()) { var clave = (from clav in ctx.Claves where clav.IdUsuario == info.InfoBasica.IdUsuario && clav.Ultimo select new { RespuestaSecreta = clav.Respuesta }).FirstOrDefault(); if (clave != null) { if (clave.RespuestaSecreta != GRCrypto.Encriptar(request.RespuestaSecreta)) { throw new SecurityException("La respuesta secreta no coincide!"); } } } } } // En caso sea un reseteo de clave if (request.TipoCambioClave == TipoCambioClave.Sys) { request.ClaveAntigua = request.ClaveNuevaConfirmada = request.ClaveNueva = publicCrypter.Decrypt(request.ClaveNueva); } else { //DESENCRIPTAR LA CONTRASENIA request.ClaveAntigua = publicCrypter.Decrypt(request.ClaveAntigua); request.ClaveNueva = publicCrypter.Decrypt(request.ClaveNueva); request.ClaveNuevaConfirmada = publicCrypter.Decrypt(request.ClaveNuevaConfirmada); } Result result = ValidacionCambiarClaveWeb(request); if (result.Success == false) { throw new Exception(result.Message); } bool primeraClave = false; try { //Validamos si tiene Clave registrada. GRPrincipal.Load(request.CodigoUsuario, request.Dominio); } catch (DataPortalException ex) { if (ex.BusinessException != null) { if (ex.BusinessException.GetType() == typeof(UsuarioSinClaveException)) { //SI LA EXCEPCION ES USUARIOSINCLAVE SE LE CREA UNA CLAVE ActivarUsuario activarUsuario = ActivarUsuario.GetActivarUsuario(new FiltroUsuarios { Usuario = request.CodigoUsuario, Dominio = request.Dominio }); activarUsuario.PreguntaSecreta = activarUsuario.RespuestaSecreta = request.CodigoUsuario; activarUsuario.ClaveSecreta = activarUsuario.ConfirmarClave = request.ClaveNueva; activarUsuario.Save(); primeraClave = true; } } } if (!primeraClave) { var cambiarClave = CambiarClave.GetCambiarClave(new FiltroUsuarios { Usuario = request.CodigoUsuario, Dominio = request.Dominio }); cambiarClave.ClaveNueva = cambiarClave.ConfirmarClave = request.ClaveNueva; cambiarClave.RespuestaSecreta = string.IsNullOrEmpty(request.RespuestaSecreta) ? cambiarClave.SecretAnswer : request.RespuestaSecreta; CambiarClave.ByPassClave = true; cambiarClave.Save(); } response.Correo = info.InfoBasica.Correo; response.Nombres = info.InfoBasica.NombresCompletos; response.CodigoUsuario = request.CodigoUsuario; return(response); }