public ActionResult Associar(FormCollection form) { bool isFormOk = ValidacaoForm(form); if (isFormOk) { var idUsuario = form["Lista"]; var idGrupos = form["check"]; String[] idGruposAssociados = idGrupos.Split(','); UsuarioEGruposBO ueg = new UsuarioEGruposBO(); ueg.Gravar(idUsuario, idGruposAssociados); } ViewBag.users = users; ViewBag.lista = itens; return(View()); }
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")); } } }