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")); } }
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); }