public override string[] GetRolesForUser(string username) { List <Perfil> perfilList = new PerfilDao().GetPerfisByEmail(new Usuario { DsEmail = username }); string[] retorno = perfilList.Select(x => x.DsPerfil).ToArray(); return(retorno); }
public ActionResult Login(Usuario usuario) { var usuarioLogado = new UsuarioBo().Login(usuario); if (usuarioLogado == null) { ModelState.AddModelError(string.Empty, "Usuário e/ou senha incorreto(s)."); return(View(usuario)); } List <Perfil> perfilList = new PerfilDao().GetPerfisByEmail(new Usuario { DsEmail = usuario.DsEmail }); string[] perfis = perfilList.Select(x => x.DsPerfil).ToArray(); var principle = new GenericPrincipal(new GenericIdentity($"{usuario.NmUsuario} {usuario.NmUsuario}"), perfis); var ticket = new FormsAuthenticationTicket(1, principle.Identity.Name, DateTime.Now, DateTime.Now.AddMonths(30), true, string.Join(",", perfis)); var encryptedTicket = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.SetCookie(cookie); Session["Nome"] = usuarioLogado.NmUsuario; Session["IdEmpresa"] = usuarioLogado.IdEmpresa; Session["IdUsuario"] = usuarioLogado.IdUsuario; Session["Role"] = "authorize"; TempData["message"] = "Logado com sucesso!"; if (usuarioLogado.Perfis.Select(x => x.DsPerfil).Contains("master")) { Session["Role"] = "master"; return(RedirectToAction("Index", "Empresa")); } if (usuarioLogado.Perfis.Select(x => x.DsPerfil).Contains("admin")) { Session["Role"] = "admin"; return(RedirectToAction("Index", "Usuario")); } if (usuarioLogado.Perfis.Select(x => x.DsPerfil).Contains("funcionario")) { Session["Role"] = "funcionario"; return(RedirectToAction("EspelhoPonto", "Usuario")); } return(RedirectToAction("Index", "Home")); }