Exemple #1
0
        public AutenticacaoModel LoginNormal(LoginModel login)
        {
            try
            {
                if (login.SenhaConfere())
                {
                    AutenticacaoModel autenticacao = new AutenticacaoModel();

                    ConfereOperador(login, autenticacao);
                    ConfereCliente(login, autenticacao);

                    if (autenticacao.Login == null)
                    {
                        autenticacao = LoginInvalido(login);
                    }

                    return(autenticacao);
                }
                else
                {
                    return(LoginInvalido(login));
                }
            } catch (Exception e)
            {
                Log.Error("Erros: " + e.Message);
                return(new AutenticacaoModel
                {
                    Login = login.Login,
                    Autenticado = false,
                    Mensagem = e.Message
                });
            }
        }
        public async Task <ActionResult> AutenticarUsuario(AutenticacaoModel autenticacao)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Unauthorized());
                }

                var credenciaisValidas =
                    await _contexto.Usuarios.AnyAsync(c => c.Email == autenticacao.Email && c.Senha == autenticacao.Senha);

                if (!credenciaisValidas)
                {
                    return(Unauthorized("Email/Senha inválidos."));
                }


                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Exemple #3
0
        public ActionResult Login(AutenticacaoModel usuario)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    foreach (var cookieKey in Request.Cookies.AllKeys.Where(c => !c.Equals("__RequestVerificationToken")))
                    {
                        var deleteCookie = new HttpCookie(cookieKey);
                        deleteCookie.Expires = DateTime.Now;
                        Response.Cookies.Add(deleteCookie);
                    }

                    AutorizacaoProvider.Logar(usuario);

                    if (!string.IsNullOrWhiteSpace(usuario.Nome))
                    {
                        return(Json(new { url = usuario.Nome.Replace("$", "&") }));
                    }
                    else
                    {
                        return(Json(new { url = Url.Action(ConfigurationManager.AppSettings["Web:DefaultAction"], ConfigurationManager.AppSettings["Web:DefaultController"]) }));
                    }
                }

                return(View(usuario));
            }
            catch (Exception ex)
            {
                return(Json(new { alerta = ex.Message, titulo = "Oops! Problema ao realizar login..." }));
            }
        }
Exemple #4
0
        public ActionResult Login(AutenticacaoModel usuario)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    string msgErro = string.Empty;
                    AutorizacaoProvider.LogIn(usuario, out msgErro);


                    if (AutorizacaoProvider.UsuarioAutenticado.Permissoes.Where(a => a.Perfil.Equals("Empregado")).Count() > 0)
                    {
                        Empregado emp = EmpregadoBusiness.Consulta.FirstOrDefault(a =>
                                                                                  string.IsNullOrEmpty(a.UsuarioExclusao) &&
                                                                                  a.CPF.ToUpper().Trim().Replace(".", "").Replace("-", "").Equals(usuario.Login.ToUpper().Trim().Replace(".", "").Replace("-", "")));

                        if (emp != null)
                        {
                            return(Json(new { url = Url.Action("Desktop", "Empregado", new { id = emp.UniqueKey }) }));
                        }
                    }

                    return(Json(new { url = Url.Action(ConfigurationManager.AppSettings["Web:DefaultAction"], ConfigurationManager.AppSettings["Web:DefaultController"]) }));
                }

                return(View(usuario));
            }
            catch (Exception ex)
            {
                return(Json(new { alerta = ex.Message, titulo = "Oops! Problema ao realizar login..." }));
            }
        }
Exemple #5
0
        public ActionResult LoginComCaptcha(AutenticacaoModel usuario)
        {
            MvcCaptcha.ResetCaptcha("LoginCaptcha");
            ViewBag.IncluirCaptcha = Convert.ToBoolean(ConfigurationManager.AppSettings["AD:DMZ"]);

            try
            {
                if (ModelState.IsValid)
                {
                    AutorizacaoProvider.Logar(usuario);

                    if (!string.IsNullOrWhiteSpace(usuario.Nome))
                    {
                        return(Json(new { url = usuario.Nome.Replace("$", "&") }));
                    }
                    else
                    {
                        return(Json(new { url = Url.Action(ConfigurationManager.AppSettings["Web:DefaultAction"], ConfigurationManager.AppSettings["Web:DefaultController"]) }));
                    }
                }

                return(View("Login", usuario));
            }
            catch (Exception ex)
            {
                return(Json(new { alerta = ex.Message, titulo = "Oops! Problema ao realizar login..." }));
            }
        }
        /// <summary>
        /// Armazena a autenticação em uma sessão
        /// </summary>
        /// <param name="autenticacaoModel"></param>
        /// <param name="msgErro"></param>
        /// <returns></returns>
        public bool Autenticar(AutenticacaoModel autenticacaoModel, out string msgErro, string grupo = "administrador")
        {
            msgErro = String.Empty;
            var usuario = adminRepository.Admins.Where(x => x.Login == autenticacaoModel.Login).FirstOrDefault();

            if (usuario == null)
            {
                msgErro = "Login não pertenece a nenhum usuario";
                return(false);
            }


            if (usuario.Senha != autenticacaoModel.Senha)
            {
                msgErro = "Senha Incorreta";
                return(false);
            }

            HttpContext.Current.Session["autenticacao"] = new AutenticacaoModel
            {
                Grupo          = "administrador",
                Login          = autenticacaoModel.Login,
                Senha          = autenticacaoModel.Senha,
                NomeTratamento = usuario.NomeTratamento
            };
            return(true);
        }
        public Usuario ValidarCredenciais(AutenticacaoModel autenticacaoModel)
        {
            autenticacaoModel.Login = autenticacaoModel.Login.Trim();

            //Buscar usuário sem validar senha, para poder determinar se a validação da senha será com AD ou com a senha interna do GIS
            List <Usuario> lUsuarios = Consulta.Where(u => u.Login.Equals(autenticacaoModel.Login) ||
                                                      u.CPF.Equals(autenticacaoModel.Login) ||
                                                      u.Email.Equals(autenticacaoModel.Login)).ToList();

            if (lUsuarios.Count > 1 || lUsuarios.Count < 1)
            {
                throw new Exception("Não foi possível identificar o seu cadastro.");
            }
            else
            {
                if (lUsuarios[0].TipoDeAcesso.Equals(0))
                {
                    //Login, validando a senha no AD

                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["AD:DMZ"]))
                    {
                        //Chamar web service para validar a senha no AD
                        return(null);
                    }
                    else
                    {
                        Empresa emp = EmpresaBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.IDEmpresa.Equals(lUsuarios[0].IDEmpresa));


                        using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, emp.URL_AD))
                        {
                            if (pc.ValidateCredentials(autenticacaoModel.Login, autenticacaoModel.Senha))
                            {
                                return(null);
                            }
                            else
                            {
                                throw new Exception("Login ou senha incorretos.");
                            }
                        }
                    }
                }
                else
                {
                    //Login, validando a senha interna do GIS
                    string IDUsuario = lUsuarios[0].IDUsuario;

                    string  senhaTemp = CreateHashFromPassword(autenticacaoModel.Senha);
                    Usuario oUsuario  = Consulta.FirstOrDefault(p => p.IDUsuario.Equals(IDUsuario) && p.Senha.Equals(senhaTemp));
                    if (oUsuario != null)
                    {
                        return(oUsuario);
                    }
                    else
                    {
                        throw new Exception("Login ou senha incorretos.");
                    }
                }
            }
        }
Exemple #8
0
        public AutenticacaoModel ValidarCredenciais(AutenticacaoModel autenticacaoModel)
        {
            autenticacaoModel.Login = autenticacaoModel.Login.Trim().ToUpper();

            //Buscar usuário sem validar senha, para poder determinar se a validação da senha será com AD ou com a senha interna do GIS
            List <Usuario> lUsuarios = Consulta.Where(u => string.IsNullOrEmpty(u.UsuarioExclusao) &&
                                                      (u.Login.Equals(autenticacaoModel.Login) || u.Email.Equals(autenticacaoModel.Login))).ToList();

            if (lUsuarios.Count == 0)
            {
                throw new Exception("Não foi possível identificar o seu cadastro. Entre em contato com o Administrador do sistema.");
            }
            else if (lUsuarios.Count > 1)
            {
                throw new Exception("Não foi possível identificar o seu cadastro.");
            }
            else
            {
                if (lUsuarios[0].TipoDeAcesso == TipoDeAcesso.AD)
                {
                    throw new Exception("Login através do AD não implementado. Favor acionar o administrador para maiores detalhes.");
                }
                else
                {
                    //Login, validando a senha interna no CIS
                    string IDUsuario = lUsuarios[0].UniqueKey;

                    string senhaCrypt = CreateHashFromPassword(autenticacaoModel.Senha);

                    Usuario oUsuario = Consulta.FirstOrDefault(p => p.UniqueKey.Equals(IDUsuario) && p.Senha.Equals(senhaCrypt));
                    //Usuario oUsuario = Consulta.FirstOrDefault(p => p.UniqueKey.Equals(IDUsuario));
                    if (oUsuario != null)
                    {
                        List <VMPermissao> listapermissoes = new List <VMPermissao>();

                        listapermissoes.AddRange(from usuarioperfil in UsuarioPerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                                                 join perfil in PerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on usuarioperfil.UKPerfil equals perfil.UniqueKey
                                                 where usuarioperfil.UKUsuario.Equals(IDUsuario)
                                                 select new VMPermissao {
                            Perfil = perfil.Nome
                        });

                        if (listapermissoes.Count == 0)
                        {
                            throw new Exception("O usuário não possui permissão para acessar o sistema. Entre em contato com o Administrador.");
                        }

                        return(new AutenticacaoModel()
                        {
                            UniqueKey = IDUsuario, Login = oUsuario.Login, Nome = oUsuario.Nome, Email = oUsuario.Email, TipoDeAcesso = lUsuarios[0].TipoDeAcesso, Permissoes = listapermissoes
                        });
                    }
                    else
                    {
                        throw new Exception("Login ou senha incorretos.");
                    }
                }
            }
        }
Exemple #9
0
        public string GerarTicketEncriptado(AutenticacaoModel autenticacaoModel, int expiracaoEmMinuto = 180)
        {
            var autenticacaoModelSerializado = Serializador.Serializar(autenticacaoModel);
            var ticket = new FormsAuthenticationTicket(1, autenticacaoModel.Login,
                                                       DateTime.Now, DateTime.Now.AddMinutes(expiracaoEmMinuto), false, autenticacaoModelSerializado,
                                                       FormsAuthentication.FormsCookiePath);
            var ticketEncriptado = FormsAuthentication.Encrypt(ticket);

            return(ticketEncriptado);
        }
Exemple #10
0
        private void GerarTicketEArmazenarComoCookie(AutenticacaoModel autenticacaoModel, int expiracaoEmMinutos = 480)
        {
            var ticketEncriptado = GerarTicketEncriptado(autenticacaoModel, expiracaoEmMinutos);

            var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncriptado);

            authCookie.Expires = DateTime.Now.AddMinutes(expiracaoEmMinutos);

            HttpContext.Current.Response.Cookies.Add(authCookie);
        }
 protected void RegistrarLoginCookie(AutenticacaoModel autenticacao)
 {
     if (autenticacao != null)
     {
         CookieOptions cookieOptions = new CookieOptions();
         cookieOptions.Expires = DateTime.Now.AddMinutes(30);
         string value = JsonSerializer.Serialize <AutenticacaoModel>(autenticacao);
         Response.Cookies.Append(_chaveCookieAuth, value, cookieOptions);
     }
 }
Exemple #12
0
        public static string Serializar(AutenticacaoModel autenticacaoModel)
        {
            var serializer = new XmlSerializer(typeof(AutenticacaoModel));
            var sw         = new StringWriter();
            var xw         = XmlWriter.Create(sw);

            serializer.Serialize(xw, autenticacaoModel);
            var autenticacaoModelSerializado = sw.ToString();

            return(autenticacaoModelSerializado);
        }
Exemple #13
0
        private void ConfereOperador(LoginModel login, AutenticacaoModel autenticacao)
        {
            Operador operador = _operadorRepository.Obter(login.Login, login.Senha);

            if (operador != null)
            {
                autenticacao.Login            = operador.Matricula;
                autenticacao.Perfil           = operador.PerfilId;
                autenticacao.Autenticado      = true;
                autenticacao.Mensagem         = "Login realizado com sucesso.";
                autenticacao.ObjetoReferencia = operador;
            }
        }
Exemple #14
0
 public ActionResult Entrar(AutenticacaoModel autenticacaoModel, string returnUrl)
 {
     if (ModelState.IsValid)
     {
         string msgErro;
         if (autenticacaoProvider.Autenticar(autenticacaoModel, out msgErro, "administrador"))
         {
             return(Redirect(returnUrl ?? Url.Action("Entrar", "Autenticacao")));
         }
         TempData["Mensagem"] = msgErro;
     }
     return(RedirectToAction("Entrar"));
 }
Exemple #15
0
        private void ConfereCliente(LoginModel login, AutenticacaoModel autenticacao)
        {
            Cliente cliente = _clienteRepository.Obter(login.Login, login.Senha);

            if (cliente != null)
            {
                autenticacao.Login            = cliente.Cpf;
                autenticacao.Perfil           = cliente.PerfilId;
                autenticacao.Autenticado      = true;
                autenticacao.Mensagem         = "Login realizado com sucesso.";
                autenticacao.ObjetoReferencia = cliente;
            }
        }
Exemple #16
0
 public IHttpActionResult Autenticar([FromBody] AutenticacaoModel dados)
 {
     try
     {
         var usuario = usuarioService.Autenticar(dados.email, dados.senha);
         var model   = new UsuarioModel(usuario);
         return(Ok(model));
     }
     catch (Exception e)
     {
         return(Ok(new MensagemModel(MensagemModel.Tipos.Erro, e.Message)));
     }
 }
        public IActionResult RequestToken([FromBody] AutenticacaoModel autenticacao)
        {
            try
            {
                Cliente   cli  = null;
                ErroModel erro = null;

                using (var db = new ZupContext())
                {
                    string senha = UtilsHelper.CriptografaSenha(autenticacao.Senha);
                    cli = db.Cliente.Where(w => w.Email.Equals(autenticacao.Email) && w.Senha.Equals(senha)).FirstOrDefault();
                }

                if (cli != null)
                {
                    var claims = new[]
                    {
                        new Claim(ClaimTypes.Email, autenticacao.Email),
                        new Claim(ClaimTypes.Role, "Admin"),
                    };

                    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["SecurityKey"]));

                    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                    var token = new JwtSecurityToken(
                        issuer: "teste",
                        audience: "teste",
                        claims: claims,
                        expires: DateTime.Now.AddMinutes(30),
                        signingCredentials: creds);

                    return(Ok(new
                    {
                        token = new JwtSecurityTokenHandler().WriteToken(token)
                    }));
                }
                erro = new ErroModel()
                {
                    Mensagem = "Usuário ou senha inválidos."
                };
                return(NotFound(erro));
            } catch (Exception er)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel()
                {
                    Mensagem = er.Message,
                    StackTrace = er.StackTrace
                }));
            }
        }
Exemple #18
0
        public ActionResult Login(AutenticacaoModel usuario)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    AutorizacaoProvider.Logar(usuario);
                    return(Json(new { url = Url.Action("Index", "Painel") }));
                }

                return(View(usuario));
            }
            catch (Exception ex)
            {
                return(Json(new { alerta = ex.Message, titulo = "Oops! Problema ao realizar login..." }));
            }
        }
 public ActionResult Entrar(AutenticacaoModel autenticacaoModel, string ReturnUrl)
 {
     if (ModelState.IsValid)
     {
         string msgErro;
         if (autenticacaoProvider.Autenticar(autenticacaoModel, out msgErro, "administrador"))
         {
             //Transfere para o index de CursoController. ActionResult , Controller
             //caso nao tenha nenhum endereço redireciona para Index
             FormsAuthentication.SetAuthCookie(autenticacaoModel.Login, false);
             return(Redirect(ReturnUrl ?? Url.Action("Index", "Admin")));
         }
         TempData["Mensagem"] = msgErro;
         return(RedirectToAction("Entrar"));
     }
     return(View());
 }
Exemple #20
0
        public ActionResult Login(AutenticacaoModel usuario)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    string msgErro = string.Empty;
                    AutorizacaoProvider.LogIn(usuario, out msgErro);
                    return(Json(new { url = Url.Action(ConfigurationManager.AppSettings["Web:DefaultAction"], ConfigurationManager.AppSettings["Web:DefaultController"]) }));
                }

                return(View(usuario));
            }
            catch (Exception ex)
            {
                return(Json(new { alerta = ex.Message, titulo = "Oops! Problema ao realizar login..." }));
            }
        }
        public async Task <IActionResult> Post(AutenticacaoModel model)
        {
            var usuario = await _usuarioRepository.Obter(model.Login);

            if (usuario == null)
            {
                return(BadRequest("Usuário inválido!"));
            }

            var senhaCriptografada = new Senha(model.Senha);

            if (usuario.Senha != senhaCriptografada.Valor)
            {
                return(BadRequest("Senha inválida!"));
            }

            return(Ok("Ok"));
        }
Exemple #22
0
        public IActionResult AutenticaUsuario([FromBody] AutenticacaoModel autenticacao)
        {
            string token = string.Empty;

            if (_iUsuarioBSService.AutenticarUsuario(autenticacao.Email, autenticacao.Senha) != null)
            {
                token = _iTokenService.GerarToken(autenticacao.Email, 1);
            }

            if (!String.IsNullOrEmpty(token))
            {
                return(Ok(token));
            }
            else
            {
                return(NotFound("Credenciais inválidas!"));
            }
        }
Exemple #23
0
        public static async Task <bool> ValidaAutenticacao(AutenticacaoModel request)
        {
            var uri = new Uri(string.Format("{0}/ValidaAutenticacao/", urlBase));

            using (var cliente = new HttpClient())
            {
                var data    = JsonConvert.SerializeObject(request);
                var content = new StringContent(data, Encoding.UTF8, "application/json");

                HttpResponseMessage response = await cliente.PostAsync(uri, content);

                if (response.IsSuccessStatusCode)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemple #24
0
        public async Task <AutenticacaoResponsePost> Post([FromBody] AutenticacaoRequestPost request)
        {
            AutenticacaoResponsePost result = new AutenticacaoResponsePost();

            if (request.Email == "*****@*****.**" && request.Password == "123456")
            {
                AutenticacaoModel autenticacaoModel = new AutenticacaoModel
                {
                    Token = "dfadsfa4567"
                };

                result.Autenticacao = autenticacaoModel;
                result.IsValid      = 1;
            }
            else
            {
                result.IsValid = 0;
            }
            return(result);
        }
        public void Logar(AutenticacaoModel autenticacaoModel)
        {
            usuarioPersistido = UsuarioBusiness.ValidarCredenciais(autenticacaoModel);
            if (usuarioPersistido == null)
            {
                throw new Exception("Não foi possível relacionar um usuário com as permissões do módulo " + ConfigurationManager.AppSettings["Web:NomeModulo"] + " à credencial fornecida. Por favor, entre em contato com um dos administradores do módulo.");
            }
            else
            {
                int expiracao;
                try
                {
                    expiracao = Convert.ToInt32(FormsAuthentication.Timeout.TotalMinutes);
                }
                catch { expiracao = 120; }

                token = SalvarEmCacheEGerarToken(usuarioPersistido, expiracao);
                GerarTicketEArmazenarComoCookie(token, usuarioPersistido.Login);
            }
        }
Exemple #26
0
        public async Task <ActionResult> Autentica(AutenticacaoModel model)
        {
            if (ModelState.IsValid)
            {
                AutenticacaoMOD usuario = new AutenticacaoMOD
                {
                    Senha   = model.Senha,
                    Usuario = model.Usuario
                };

                if (await _autenticacaoBLL.ValidaUsuario(usuario))
                {
                    Session["user"] = usuario.Usuario;
                    return(RedirectToAction("Index", "Intranet"));
                }
            }
            return(View("Index", new AutenticacaoModel()
            {
                Mensagem = "Usuário ou senha inválidos"
            }));
        }
Exemple #27
0
        public async Task <IActionResult> ObterAutenticacao(AutenticacaoModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var autenticacao = _servicoDeAplicacaoUsuario.ObterAutenticacao(model.Email, model.Senha);

            if (autenticacao == null)
            {
                return(BadRequest("Autenticação inválida!"));
            }

            autenticacao.Token = GerarModelParaToken(new TokenModel()
            {
                UsuarioEmail = autenticacao.UsuarioEmail,
                UsuarioId    = autenticacao.UsuarioId
            });

            return(Ok(autenticacao));
        }
Exemple #28
0
        public ActionResult Perfil()
        {
            Usuario usr = UsuarioBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(AutorizacaoProvider.UsuarioAutenticado.UniqueKey));

            AutenticacaoModel aut = AutorizacaoProvider.UsuarioAutenticado;

            aut.Telefone = usr.Telefone;

            try
            {
                Departamento dep = DepartamentoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(usr.UKDepartamento));
                aut.Departamento = dep.Sigla + " [" + dep.Codigo + "]";
            }
            catch { }

            try
            {
                Empresa emp = EmpresaBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(usr.UKEmpresa));
                aut.Empresa = emp.NomeFantasia;
            }
            catch { }

            return(View(aut));
        }
 public static async Task <bool> ValidaAutenticacao(AutenticacaoModel request)
 {
     return(await AutenticacaoApiAdapter.ValidaAutenticacao(request));
 }
Exemple #30
0
        public AutenticacaoModel ValidarCredenciais(AutenticacaoModel autenticacaoModel)
        {
            autenticacaoModel.Login = autenticacaoModel.Login.Trim().ToUpper().Replace(".", "").Replace("-", "").Replace("/", "");
            autenticacaoModel.Login = autenticacaoModel.Login.Trim();

            //Buscar usuário sem validar senha, para poder determinar se a validação da senha será com AD ou com a senha interna do GIS
            List <Usuario> lUsuarios = Consulta.Where(u => string.IsNullOrEmpty(u.UsuarioExclusao) &&
                                                      (u.Login.Equals(autenticacaoModel.Login) || u.Email.Equals(autenticacaoModel.Login))).ToList();

            string teste = "teste";

            if (lUsuarios.Count == 0)
            {
                throw new Exception("Não foi possível identificar o seu cadastro.");
            }
            else if (lUsuarios.Count > 1)
            {
                throw new Exception("Não foi possível identificar o seu cadastro.");
            }
            else
            {
                if (lUsuarios[0].TipoDeAcesso == TipoDeAcesso.AD)
                {
                    throw new Exception("Autenticação via AD não habilitada. Favor acionar a empresa de suporte.");

                    //Login, validando a senha no AD
                    //Guid UKEmpresa = lUsuarios[0].UKEmpresa;
                    //Empresa emp = EmpresaBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(UKEmpresa));
                    //if (emp == null)
                    //{
                    //    throw new Exception("Nâo foi possível encontrar a empresa vinculada ao perfil do usuário.");
                    //}
                    //else
                    //{
                    //    if (Convert.ToBoolean(ConfigurationManager.AppSettings["AD:DMZ"]))
                    //    {
                    //        //Chamar web service para validar a senha no AD

                    //        //ws.Url = emp.URL_WS;

                    //        string rs = ws.LoginAD(autenticacaoModel.Login, autenticacaoModel.Senha);
                    //        if (rs.Equals("\"-1\""))
                    //        {
                    //            throw new Exception("Login ou senha incorreto.");
                    //        }
                    //        else
                    //        {
                    //            Guid IDUsuario = lUsuarios[0].UniqueKey;

                    //            List<VMPermissao> listapermissoes = new List<VMPermissao>();

                    //            listapermissoes.AddRange(from usuarioperfil in UsuarioPerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                    //                                     join perfil in PerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on usuarioperfil.UKPerfil equals perfil.UniqueKey
                    //                                     join empresa in EmpresaBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao)).ToList() on usuarioperfil.UKConfig equals empresa.UniqueKey
                    //                                     where usuarioperfil.UKUsuario.Equals(IDUsuario)
                    //                                     select new VMPermissao { UKPerfil = perfil.UniqueKey, Perfil = perfil.Nome, UKConfig = empresa.UniqueKey, Config = empresa.NomeFantasia });

                    //            listapermissoes.AddRange(from usuarioperfil in UsuarioPerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                    //                                     join perfil in PerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on usuarioperfil.UKPerfil equals perfil.UniqueKey
                    //                                     join dep in DepartamentoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao)).ToList() on usuarioperfil.UKConfig equals dep.UniqueKey
                    //                                     where usuarioperfil.UKUsuario.Equals(IDUsuario)
                    //                                     select new VMPermissao { UKPerfil = perfil.UniqueKey, Perfil = perfil.Nome, UKConfig = dep.UniqueKey, Config = dep.Sigla });

                    //            if (listapermissoes.Count == 0)
                    //            {
                    //                throw new Exception("O usuário não possui permissão para acessar o sistema. Entre em contato com o Administrador.");
                    //            }

                    //            return new AutenticacaoModel() { UniqueKey = lUsuarios[0].UniqueKey, Login = lUsuarios[0].Login, Nome = lUsuarios[0].Nome, Email = lUsuarios[0].Email, TipoDeAcesso = lUsuarios[0].TipoDeAcesso, Permissoes = listapermissoes };
                    //        }

                    //    }
                    //    else
                    //    {

                    //        using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, emp.URL_AD))
                    //        {
                    //            if (pc.ValidateCredentials(autenticacaoModel.Login, autenticacaoModel.Senha))
                    //                return null;
                    //            else
                    //                throw new Exception("Login ou senha incorretos.");
                    //        }
                    //    }
                    //}
                }
                else
                {
                    //Login, validando a senha interna no CIS
                    Guid IDUsuario = lUsuarios[0].UniqueKey;

                    string senhaCifrada = CreateHashFromPassword(autenticacaoModel.Senha);

                    Usuario oUsuario = Consulta.FirstOrDefault(p => p.UniqueKey.Equals(IDUsuario) && p.Senha.Equals(senhaCifrada));
                    if (oUsuario != null)
                    {
                        List <VMPermissao> listapermissoes = new List <VMPermissao>();

                        listapermissoes.AddRange(from usuarioperfil in UsuarioPerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                                                 join perfil in PerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on usuarioperfil.UKPerfil equals perfil.UniqueKey
                                                 join area in DepartamentoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on usuarioperfil.UKConfig equals area.UniqueKey
                                                 where usuarioperfil.UKUsuario.Equals(IDUsuario)
                                                 select new VMPermissao {
                            Perfil = perfil.Nome, Config = area.Sigla
                        });

                        //listapermissoes.AddRange(from usuarioperfil in UsuarioPerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                        //                         join perfil in PerfilBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on usuarioperfil.UKPerfil equals perfil.UniqueKey
                        //                         where usuarioperfil.UKUsuario.Equals(IDUsuario)
                        //                         select new VMPermissao { Perfil = perfil.Nome });

                        if (listapermissoes.Count == 0)
                        {
                            throw new Exception("O usuário não possui permissão para acessar o sistema. Entre em contato com o Administrador.");
                        }

                        return(new AutenticacaoModel()
                        {
                            UniqueKey = IDUsuario, Login = oUsuario.Login, Nome = oUsuario.Nome, Email = oUsuario.Email, TipoDeAcesso = lUsuarios[0].TipoDeAcesso, Permissoes = listapermissoes
                        });
                    }
                    else
                    {
                        throw new Exception("Login ou senha incorretos.");
                    }
                }
            }
        }