예제 #1
0
        public ActionResult Autenticar(FormCollection formCollection)
        {
            UsuarioDomain usuarioDomain = new UsuarioDomain();

            string login = formCollection["Login"];
            string senha = formCollection["Senha"];

            login = login.ToLower().Replace("ccpr\\", "");

            //autenticação no Active Directory
            bool autenticado = usuarioDomain.AutenticarUsuarioAd(login, senha);

            //Se usuário autentica no AD corretamente então, realiza a autenticação no GSS
            if (autenticado)
            {
                CredencialModel credencialGss = new CredencialModel();
                credencialGss = usuarioDomain.AutenticarUsuarioGss(login);
                //usuarioDomain.SetUsuarioAtual(login);

                //Caso o perfil de acesso seja negado redireciona para login
                if (credencialGss.PerfilAcesso.ToUpper() != "DIRETOR" &&
                    credencialGss.PerfilAcesso.ToUpper() != "ADMINISTRADOR" &&
                    credencialGss.PerfilAcesso.ToUpper() != "EXECUTOR" &&
                    credencialGss.PerfilAcesso.ToUpper() != "MASTER")
                {
                    @TempData["MessageErro"] = Mensagens.MSG_ErroSemAcessoGss;
                    return(RedirectToAction("Autenticar"));
                }

                //Seta o cookie de autenticação como o login do usuário
                FormsAuthentication.SetAuthCookie(login, false);
                CookieHelper.SetCookie("UsuarioAd", login);
                Session["UsuarioAd"] = login;
                //Caso
                if (TempData["UrlRetorno"] == null)
                {
                    return(RedirectToAction("Index", "DePara"));
                }
                else
                {
                    return(Redirect(TempData["UrlRetorno"].ToString()));
                }
            }
            else
            {
                @TempData["MessageErro"] = Mensagens.MSG_UsuarioSenhaInvalidos;
                return(RedirectToAction("Autenticar"));
            }
        }
예제 #2
0
        public CredencialModel AutenticarUsuarioGss(string pLoginActiveDirectory)
        {
            CredencialModel credencialModel = new CredencialModel();

            string credencial = "";

            //** Caso o login/usuário logado não seja do domínio CCPR.
            if (!string.IsNullOrEmpty(pLoginActiveDirectory))
            {
                // Cria instancia do WebService de autenticação
                STA.DOMAIN.GssWebService.ServiceSoapClient wsRetorno = new STA.DOMAIN.GssWebService.ServiceSoapClient();

                try
                {
                    //faz a verificação e retorna a credencial do usuario
                    int idIntranetNoGss = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["IdAplicacaoGss"]);
                    credencial = wsRetorno.GetCredencial(pLoginActiveDirectory, idIntranetNoGss);

                    string[] myCred = credencial.Split(new Char[] { ',' });

                    credencialModel.CodigoUsuarioGss   = Int32.Parse(myCred[0].Trim());
                    credencialModel.Nome               = myCred[1].Trim();
                    credencialModel.Login              = myCred[2].Trim();
                    credencialModel.Email              = myCred[3].Trim();
                    credencialModel.IdSetor            = myCred[4].Trim() == "" ? 0 : Int32.Parse(myCred[4].Trim());
                    credencialModel.NomeSetor          = myCred[5].Trim();
                    credencialModel.Aplicacao          = myCred[6].Trim();
                    credencialModel.PerfilAcesso       = myCred[7].Trim();
                    credencialModel.AplicacaoBloqueada = myCred[8].ToUpper();
                    credencialModel.AplicacaoPublica   = myCred[9].ToUpper();
                }
                catch (STA.DOMAIN.Util.Exception)
                {
                    credencialModel.AplicacaoBloqueada = "TRUE";
                }
            }
            else
            {
                credencialModel.AplicacaoBloqueada = "TRUE";
            }
            return(credencialModel);
        }