Exemple #1
0
        public async Task <IActionResult> InicializarUsuario()
        {
            UsuarioMO usuarioMO = new UsuarioMO();

            usuarioMO.ApePaterno = Constante.POR_DEFECTO_APE_PATERNO;
            usuarioMO.ApeMaterno = Constante.POR_DEFECTO_APE_MATERNO;
            usuarioMO.Nombres    = Constante.POR_DEFECTO_NOMBRES;
            usuarioMO.Usuario    = Constante.POR_DEFECTO_USUARIO;
            usuarioMO.Correo     = Constante.POR_DEFECTO_CORREO;
            usuarioMO.Celular    = Constante.POR_DEFECTO_CELULAR;
            await _cuentaNE.CrearUsuarioDesconectadoAsync(new CancellationToken(false), usuarioMO);

            // Define the default user.
            IdentityUserMO identityMO = new IdentityUserMO
            {
                IdUsuario          = Constante.POR_DEFECTO_ID_USUARIO,
                UserName           = Constante.POR_DEFECTO_USUARIO,
                NormalizedUserName = Constante.POR_DEFECTO_USUARIO.ToUpper(),
                Email                = Constante.POR_DEFECTO_CORREO,
                NormalizedEmail      = Constante.POR_DEFECTO_CORREO.ToUpper(),
                EmailConfirmed       = true,
                PhoneNumber          = Constante.POR_DEFECTO_CELULAR,
                PhoneNumberConfirmed = true,
                TwoFactorEnabled     = false,
                LockoutEnabled       = false,
                AccessFailedCount    = Constante._20
            };

            // Get the list of the roles from enum.
            Role[] roles = (Role[])Enum.GetValues(typeof(Role));

            // Create the default user if it doesn't already exist.
            if (await _userManager.FindByNameAsync(identityMO.UserName) == null)
            {
                // Do not check for credentials of any kind yet.
                IdentityResult result = await _userManager.CreateAsync(identityMO, password : Constante.POR_DEFECTO_CLAVE);

                // Return 500 if it fails
                if (!result.Succeeded)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError));
                }

                // Asign all roles to the default user.
                result = await _userManager.AddToRolesAsync(identityMO, roles.Where(r => r.getRoleName() != Constante.ROL_ADMINISTRADOR).Select(r => r.getRoleName()));

                // Return 500 if it fails
                if (!result.Succeeded)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError));
                }
            }

            // All good, Ok.
            return(Ok());
        }
Exemple #2
0
        public async Task <Object> ReiniciarClaveAsync(CancellationToken cancelToken, String[] parametros)
        {
            Object  objeto     = null;
            Boolean esCorrecto = false;

            try
            {
                String usuario = parametros[0] == null ? String.Empty : parametros[0].ToString().Trim();
                String clave   = parametros[1] == null ? String.Empty : parametros[1].ToString().Trim();
                String token   = parametros[2] == null ? String.Empty : parametros[2].ToString().Trim();

                if (usuario == String.Empty || clave == String.Empty || token == String.Empty)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = Constante.MENSAJE_PARAMETROS_NO_PRESENTES
                    };
                }
                else
                {
                    IdentityUserMO identityUserMO = await _userManager.FindByNameAsync(usuario);

                    IdentityResult identityResult = await _userManager.ResetPasswordAsync(identityUserMO, token, clave);

                    esCorrecto = identityResult.Succeeded;
                    String mensajeError = String.Empty;

                    if (!identityResult.Succeeded)
                    {
                        foreach (var item in identityResult.Errors)
                        {
                            mensajeError += String.Format("{0}{1}", item.Description, Environment.NewLine);
                        }
                    }

                    objeto = new
                    {
                        codigo  = identityResult.Succeeded ? Constante.CODIGO_OK : Constante.CODIGO_NO_OK,
                        mensaje = identityResult.Succeeded ? Constante.MENSAJE_VOLVER_INICIAR_SESION : mensajeError,
                        url     = Constante.URL_PUBLICO_LOGUEAR
                    };
                    esCorrecto = identityResult.Succeeded ? true : false;
                }

                String mensaje = esCorrecto == true ? Constante.MENSAJE_REINICIAR_CLAVE_ASYNC_OK : Constante.MENSAJE_REINICIAR_CLAVE_ASYNC_NO_OK;
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_NEGOCIO, Constante.CLASE_CUENTA_NE, Constante.METODO_REINICIAR_CLAVE_ASYNC, mensaje);
            }
            catch (Exception e)
            {
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_NEGOCIO, Constante.CLASE_CUENTA_NE, Constante.METODO_REINICIAR_CLAVE_ASYNC, Constante.MENSAJE_REINICIAR_CLAVE_ASYNC_NO_OK, e.Message);

                throw e;
            }
            return(objeto);
        }
Exemple #3
0
        public async Task <Object> DesasignarRolAsync(CancellationToken cancelToken, String[] parametros)
        {
            Object  objeto     = null;
            Boolean esCorrecto = false;

            try
            {
                String usuario = parametros[0] == null ? String.Empty : parametros[0].ToString().Trim();
                String rol     = parametros[1] == null ? String.Empty : parametros[1].ToString().Trim();

                if (usuario == String.Empty || rol == String.Empty)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = Constante.MENSAJE_PARAMETROS_NO_PRESENTES
                    };
                }
                else
                {
                    IdentityUserMO identityMO = await _userManager.FindByNameAsync(usuario);

                    IdentityResult identityResult = await _userManager.RemoveFromRoleAsync(identityMO, rol);

                    String mensajeError = String.Empty;

                    if (!identityResult.Succeeded)
                    {
                        foreach (IdentityError item in identityResult.Errors)
                        {
                            mensajeError += String.Format("{0}{1}", item.Description, Environment.NewLine);
                        }
                    }

                    objeto = new
                    {
                        codigo  = identityResult.Succeeded ? Constante.CODIGO_OK : Constante.CODIGO_NO_OK,
                        mensaje = identityResult.Succeeded ? Constante.MENSAJE_DESASIGNAR_ROL_ASYNC_OK : mensajeError
                    };
                    esCorrecto = identityResult.Succeeded ? true : false;
                }

                String mensaje = esCorrecto == true ? Constante.MENSAJE_DESASIGNAR_ROL_ASYNC_OK : Constante.MENSAJE_DESASIGNAR_ROL_ASYNC_NO_OK;
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_NEGOCIO, Constante.CLASE_ROL_NE, Constante.METODO_DESASIGNAR_ROL_ASYNC, mensaje);
            }
            catch (Exception e)
            {
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_NEGOCIO, Constante.CLASE_ROL_NE, Constante.METODO_DESASIGNAR_ROL_ASYNC, Constante.MENSAJE_DESASIGNAR_ROL_ASYNC_NO_OK, e.Message);

                throw e;
            }
            return(objeto);
        }
Exemple #4
0
        public async Task <Object> RecuperarClaveAsync(CancellationToken cancelToken, String usuario, String correo)
        {
            Object  objeto     = null;
            Boolean esCorrecto = false;

            try
            {
                usuario = usuario ?? String.Empty;
                correo  = correo ?? String.Empty;

                if (usuario == String.Empty && correo == String.Empty)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = Constante.MENSAJE_PARAMETROS_NO_PRESENTES
                    };
                }
                else
                {
                    IdentityUserMO identityUserMO = usuario != String.Empty ? await _userManager.FindByNameAsync(usuario) : await _userManager.FindByEmailAsync(correo);

                    String token = await _userManager.GeneratePasswordResetTokenAsync(identityUserMO);

                    var             callbackUrl     = String.Format(Constante.URL_RECUPERAR_CLAVE, identityUserMO.UserName, token);
                    ObjetoUsuarioMO objetoUsuarioMO = await _cuentaRE.RecuperarClaveAsync(cancelToken, identityUserMO.IdUsuario, callbackUrl);

                    objeto = new
                    {
                        codigo  = objetoUsuarioMO.Codigo,
                        mensaje = objetoUsuarioMO.Mensaje
                    };
                    esCorrecto = objetoUsuarioMO.Codigo == Constante.CODIGO_OK ? true : false;
                }

                String mensaje = esCorrecto == true ? Constante.MENSAJE_RECUPERAR_CLAVE_ASYNC_OK : Constante.MENSAJE_RECUPERAR_CLAVE_ASYNC_NO_OK;
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_NEGOCIO, Constante.CLASE_CUENTA_NE, Constante.METODO_RECUPERAR_CLAVE_ASYNC, mensaje);
            }
            catch (Exception e)
            {
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_NEGOCIO, Constante.CLASE_CUENTA_NE, Constante.METODO_RECUPERAR_CLAVE_ASYNC, Constante.MENSAJE_RECUPERAR_CLAVE_ASYNC_NO_OK, e.Message);

                throw e;
            }
            return(objeto);
        }
Exemple #5
0
        public async Task <Object> ListarRolesUsuarioAsync(CancellationToken cancelToken, String usuario)
        {
            Object  objeto     = null;
            Boolean esCorrecto = false;

            try
            {
                if (usuario == String.Empty)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = Constante.MENSAJE_PARAMETROS_NO_PRESENTES
                    };
                }
                else
                {
                    IdentityUserMO identityMO = await _userManager.FindByNameAsync(usuario);

                    IList <String> listaRoles = await _userManager.GetRolesAsync(identityMO);

                    objeto = new
                    {
                        codigo     = listaRoles.Count > 0 ? Constante.CODIGO_OK : Constante.CODIGO_OMISION,
                        mensaje    = listaRoles.Count > 0 ? String.Empty : Constante.MENSAJE_USUARIO_SIN_ROLES,
                        listaRoles = listaRoles
                    };
                    esCorrecto = listaRoles != null && listaRoles.Count > 0 ? true : false;
                }

                String mensaje = esCorrecto == true ? Constante.MENSAJE_LISTAR_ROLES_USUARIO_ASYNC_OK : Constante.MENSAJE_LISTAR_ROLES_USUARIO_ASYNC_NO_OK;
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_NEGOCIO, Constante.CLASE_ROL_NE, Constante.METODO_LISTAR_ROLES_USUARIO_ASYNC, mensaje);
            }
            catch (Exception e)
            {
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_NEGOCIO, Constante.CLASE_ROL_NE, Constante.METODO_LISTAR_ROLES_USUARIO_ASYNC, Constante.MENSAJE_LISTAR_ROLES_USUARIO_ASYNC_NO_OK, e.Message);

                throw e;
            }
            return(objeto);
        }
Exemple #6
0
        private IdentityUserMO MapearModeloUsuarioHaciaModeloIdentity(UsuarioMO usuarioMO)
        {
            IdentityUserMO identityMO = new IdentityUserMO();

            try
            {
                identityMO.IdUsuario          = String.Empty;
                identityMO.UserName           = usuarioMO.Usuario;
                identityMO.NormalizedUserName = usuarioMO.Usuario.ToUpper();
                identityMO.Email                = usuarioMO.Correo;
                identityMO.NormalizedEmail      = usuarioMO.Correo.ToUpper();
                identityMO.EmailConfirmed       = true;
                identityMO.PhoneNumber          = usuarioMO.Celular;
                identityMO.PhoneNumberConfirmed = true;
                identityMO.TwoFactorEnabled     = false;
                identityMO.LockoutEnabled       = false;
                identityMO.AccessFailedCount    = 20;
            }
            catch (Exception e)
            {
                throw e;
            }
            return(identityMO);
        }
Exemple #7
0
        public async Task <Object> CrearUsuarioAsync(CancellationToken cancelToken, UsuarioMO usuarioMO)
        {
            Object  objeto = null;
            Boolean esParametrosConforme = false, esInexistenteConforme = false, esCreadoConforme = false, esRegistradoConforme = false;

            try
            {
                String mensaje = String.Empty;

                if (usuarioMO != null)
                {
                    esParametrosConforme = true;
                    IdentityUserMO usuarioPorNombre = await _userManager.FindByNameAsync(usuarioMO.Usuario);

                    IdentityUserMO usuarioPorCorreo = await _userManager.FindByEmailAsync(usuarioMO.Correo);

                    if (usuarioPorNombre == null && usuarioPorCorreo == null)
                    {
                        esInexistenteConforme = true;
                        ObjetoUsuarioMO objetoUsuarioMO = await _cuentaRE.CrearUsuarioAsync(cancelToken, usuarioMO);

                        if (objetoUsuarioMO != null && objetoUsuarioMO.Codigo == Constante.CODIGO_OK)
                        {
                            esCreadoConforme = true;
                            mensaje          = objetoUsuarioMO.Mensaje;
                            IdentityUserMO identityMO = MapearModeloUsuarioHaciaModeloIdentity(usuarioMO);
                            identityMO.IdUsuario = objetoUsuarioMO.IdUsuario;
                            IdentityResult identityResult = await _userManager.CreateAsync(identityMO, usuarioMO.Clave);

                            esRegistradoConforme = identityResult.Succeeded;

                            if (!identityResult.Succeeded)
                            {
                                await _cuentaRE.EliminarUsuarioAsync(cancelToken, objetoUsuarioMO.IdUsuario);

                                foreach (IdentityError item in identityResult.Errors)
                                {
                                    mensaje += String.Format("{0}{1}", item.Description, Environment.NewLine);
                                }
                            }
                        }
                    }
                }

                if (!esParametrosConforme)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = Constante.MENSAJE_USUARIO_CLAVE_TOKEN_NO_INGRESADAS
                    };
                }
                else if (!esInexistenteConforme)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_USUARIO_DUPLICADO,
                        mensaje = Constante.MENSAJE_USUARIO_DUPLICADO
                    };
                }
                else if (!esCreadoConforme)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = Constante.MENSAJE_RECARGAR_PAGINA
                    };
                }
                else if (!esRegistradoConforme)
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_NO_OK,
                        mensaje = mensaje
                    };
                }
                else
                {
                    objeto = new
                    {
                        codigo  = Constante.CODIGO_OK,
                        mensaje = mensaje
                    };
                }

                mensaje = esRegistradoConforme == true ? Constante.MENSAJE_CREAR_USUARIO_ASYNC_OK : Constante.MENSAJE_CREAR_USUARIO_ASYNC_NO_OK;
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_NOTIFICACION, Constante.PROYECTO_NEGOCIO, Constante.CLASE_CUENTA_NE, Constante.METODO_CREAR_USUARIO_ASYNC, mensaje);
            }
            catch (Exception e)
            {
                await _bitacora.RegistrarEventoAsync(cancelToken, Constante.BITACORA_ERROR, Constante.PROYECTO_NEGOCIO, Constante.CLASE_CUENTA_NE, Constante.METODO_CREAR_USUARIO_ASYNC, Constante.MENSAJE_CREAR_USUARIO_ASYNC_NO_OK, e.Message);

                throw e;
            }
            return(objeto);
        }