コード例 #1
0
ファイル: Roles.cs プロジェクト: cadudragon/pontomap
        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);
        }
コード例 #2
0
        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"));
        }