public ActionResult LogOff() // finaliza a sessão { Usuario usuario = Session["UsuarioAtual"] as Usuario; FormsAuthentication.SignOut(); Session.Remove("UsuarioLogado"); Session.Remove("UsuarioAtual"); Session.Abandon(); HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, ""); cookie1.Expires = DateTime.Now.AddYears(-1); Response.Cookies.Add(cookie1); SessionStateSection s = (SessionStateSection)WebConfigurationManager.GetSection("system.web/sessionState"); HttpCookie cookie2 = new HttpCookie(s.CookieName, ""); cookie2.Expires = DateTime.Now.AddYears(-1); Response.Cookies.Add(cookie2); MenuController.descarregar(); Historico log = new Historico(); log.dataHora = DateTime.Now; log.usuario = usuario; log.mensagem = "Logoff em intranet."; HistoricoBO logBO = new HistoricoBO(); logBO.Gravar(log, log.mensagem); return(RedirectToAction("Index", "Home")); }
public ActionResult Login(FormCollection form, String retunrUrl)// action responsavel por autenticação { UsuarioBO uBO = new UsuarioBO(); GrupoUsuario grupo = new GrupoUsuario(); String[] txbNomeUsuario = form["nomeUsuario"].ToString().Split('@'); // nonme de logon (ex: Fenix/gsc) no Active DIrectory if ((form["nomeUsuario"] == String.Empty || form["Senha"] == String.Empty)) // verifico se os campos nãoe stão em brancos { ViewBag.LoginError = "Nome de usuário ou senha inválidos."; return(RedirectToAction("Index")); } else { GrupoUsuarioBO guBO = new GrupoUsuarioBO(); UsuarioEGruposBO uXg = new UsuarioEGruposBO(); var usuario = uBO.PesquisarUsuario(form["nomeUsuario"].ToString(), form["Senha"].ToString()); // procura o usuario no banco da aplicação pelo user e senha digitado if (usuario != null) { AutenticadorLDAP autenticador = new AutenticadorLDAP("LDAP://fenix.net", txbNomeUsuario[0], usuario.senha); //procura usuario no AD com as credenciais passadas if (/*autenticador.autenticar()*/ true) { foreach (var idGrupo in uXg.listaDeGrupoAQualPertence(usuario.id)) { GrupoUsuario g = new GrupoUsuario(); g.id = idGrupo; usuario.setGrupos(g); } usuario.privilegios = guBO.pegarPrivilegios(usuario); FormsAuthentication.SetAuthCookie(usuario.usuarioLogin, true); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, usuario.usuarioLogin, DateTime.Now, DateTime.Now.AddMinutes(20), true, usuario.privilegios); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(authCookie); Session.Add("UsuarioAtual", usuario); Session.Add("UsuarioLogado", false); // criar uma flag para usuario logado Historico log = new Historico(); // crio uma entra no log de eventos da aplicação log.dataHora = DateTime.Now; log.usuario = usuario; log.mensagem = "Logon em intranet."; HistoricoBO logBO = new HistoricoBO(); logBO.Gravar(log, log.mensagem); return(RedirectToAction("Principal", "Home")); } else { return(RedirectToAction("Index")); } } else { return(RedirectToAction("Index")); } } }