Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Executando...");
            try
            {
                // Busca todos os usuários dos sistema
                // que devem ter a senha alterada (grupos específicos que não estejam marcados para expirar senha).
                DataTable dtUsuarios        = SYS_UsuarioBO.SelecionaUsuariosSenhaPadrao();
                string    usuariosAtualizar = string.Empty;

                // Variáveis utilizadas para fazer a atualização aos poucos, porque senão não cabe na variável.
                int       contador     = 0;
                const int maxAtualizar = 100;

                // Percorre a lista de usuários
                foreach (DataRow drUsuario in dtUsuarios.Rows)
                {
                    contador++;

                    // Aplica a criptografia na senha padrão
                    eCriptografa criptografia = (eCriptografa)Enum.Parse(typeof(eCriptografa), drUsuario["usu_criptografia"].ToString(), true);
                    string       senhaPadrao  = UtilBO.CriptografarSenha(drUsuario["senhaPadrao"].ToString(), criptografia);

                    // Compara a criptografia com a senha do usuário
                    string senhaAtual = drUsuario["usu_senha"].ToString();
                    if (UtilBO.EqualsSenha(senhaAtual, senhaPadrao, criptografia))
                    {
                        // Se for a mesma, coloco o usuário para expirar a senha (usu_situacao = 5)
                        if (string.IsNullOrEmpty(usuariosAtualizar))
                        {
                            usuariosAtualizar = drUsuario["usu_id"].ToString();
                        }
                        else
                        {
                            usuariosAtualizar += string.Format(",{0}", drUsuario["usu_id"].ToString());
                        }
                    }

                    if (contador == maxAtualizar && !string.IsNullOrEmpty(usuariosAtualizar))
                    {
                        SYS_UsuarioBO.ExpiraUsuariosSenhaPadrao(usuariosAtualizar);
                        contador          = 0;
                        usuariosAtualizar = string.Empty;
                    }
                }

                if (!string.IsNullOrEmpty(usuariosAtualizar))
                {
                    SYS_UsuarioBO.ExpiraUsuariosSenhaPadrao(usuariosAtualizar);
                }

                Console.WriteLine("Usuários atualizados com sucesso!");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadLine();
        }