Exemplo n.º 1
0
        public static void Deslogar(string login = null, bool isDeslogarForcado = false)
        {
            if (login == null && HttpContext.Current.User == null && !(HttpContext.Current.User is EtramitePrincipal))
            {
                return;
            }

            AutenticacaoExecutor executor = new AutenticacaoExecutor();

            executor.Tipo = (int)eExecutorTipo.Interno;            //Executor Interno
            UsuarioBus busUsuario = new UsuarioBus(HistoricoAplicacao.INTERNO);

            if (HttpContext.Current.User != null && (HttpContext.Current.User is EtramitePrincipal))
            {
                EtramitePrincipal user = (HttpContext.Current.User as EtramitePrincipal);
                login              = user.EtramiteIdentity.Login;
                executor.Tid       = user.EtramiteIdentity.FuncionarioTid;
                executor.UsuarioId = user.EtramiteIdentity.UsuarioId;
            }
            else
            {
                Funcionario funcionario = _busFunc.ObterFuncionarioExecutor(login);
                executor.Tid       = funcionario.Tid;
                executor.UsuarioId = funcionario.Usuario.Id;
            }

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                bancoDeDados.IniciarTransacao();
                busUsuario.Deslogar(login, executor, isDeslogarForcado, bancoDeDados);
                _busFunc.Deslogar(login, bancoDeDados);

                bancoDeDados.Commit();
            }
        }