Ejemplo n.º 1
0
        public ActionResult AreaSecreta()
        {
            UsuarioLogadoModel usuarioLogado = ServicoDeSessao.UsuarioLogado;

            ViewBag.NomeUsuarioLogado = usuarioLogado.Nome;
            return(View());
        }
        public ActionResult Index()
        {
            //ConvertMD5 _senhaCrip = new ConvertMD5();

            //UsersRepository x = new UsersRepository();



            //  ViewBag.md5 = _senhaCrip.getMD5Hash("admin");
            //  ViewBag.md5 = _senhaCrip.getMD5Hash("0000000001");
            //  ViewBag.md5 = _senhaCrip.getMD5Hash("0000000002");
            //  ViewBag.md5 = _senhaCrip.getMD5Hash("PhotoCloudMD5CryptographyKey");

            //    UsuarioLogado objUsuarioLogado = (UsuarioLogado)ViewData["TestValue"];

            //     ViewBag.dirUsuario = objUsuarioLogado.diretorioUsuario;

            //UsuarioLogadoModel test = (UsuarioLogadoModel)ViewData["TestValue"];

            //string _confDirBase = "0000000000" + test.idUsuario.ToString();

            //_confDirBase = _confDirBase.Substring(_confDirBase.Length - 10);

            //ViewBag.Crip = CryptographyRepository.Criptografar(_confDirBase);
            //ViewBag.DeCrip = CryptographyRepository.Descriptografar(CryptographyRepository.Criptografar(_confDirBase).ToString());
            //ViewBag.xxx = test.diretorioUsuario;
            //ViewBag.md5 = _senhaCrip.getMD5Hash(CryptographyRepository.Criptografar(_confDirBase));

            UsuarioLogadoModel objUsuarioLogado = (UsuarioLogadoModel)ViewData["vdtUsuarioLogado"];

            return(View(objUsuarioLogado));
        }
Ejemplo n.º 3
0
        public ActionResult Entrar(LoginViewModel loginViewModel)
        {
            if (ModelState.IsValid)
            {
                // Buscamos o usuário de nosso "Banco de Dados" por seu login e senha.
                Usuario usuarioEncontrado =
                    _usuarioServico.BuscarUsuarioPorAutenticacao(
                        loginViewModel.Email, loginViewModel.Senha
                        );

                if (usuarioEncontrado != null)
                {
                    // É sempre bom criar uma Model só para o usuário logado.
                    // Digamos que você queira utilizar somente a classe Usuário para isso,
                    // então se quisesse guardar coisas que são da sessão e não da classe usuário, como faria?
                    // mudaria a classe Usuario? Não, porque não é de sua responsabilidade os dados de sessão.
                    // mas uma view model pode ser mais flexivel.
                    var usuarioLogadoModel = new UsuarioLogadoModel(usuarioEncontrado);

                    // Encapsulamos aqui a regra para criar a sessão.
                    ServicoDeSessao.CriarSessao(usuarioLogadoModel);
                    return(RedirectToAction("AreaSecreta"));
                }
                else
                {
                    ModelState.AddModelError("INVALID_USER", "Usuário ou senha inválido.");
                }
            }

            return(View("Index", loginViewModel));
        }
Ejemplo n.º 4
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            UsuarioLogadoModel usuario = ServicoDeAutenticacao.UsuarioLogado;

            if (usuario == null)
            {
                return(false);
            }
            return(true);
        }
Ejemplo n.º 5
0
        // Aqui encapsulamos a lógica para criar a sessão para o usuário.
        public static void CriarSessao(UsuarioLogadoModel usuario)
        {
            // Um Guid gera um hash aleatório.
            string numeroToken = Guid.NewGuid().ToString();

            _usuariosLogados.Add(numeroToken, usuario.Email);

            HttpContext.Current.Session[USUARIO_LOGADO] = usuario;
            var cookieDeAutenticacao = new HttpCookie(COOKIE_AUTENTICACAO, numeroToken);

            HttpContext.Current.Response.Cookies.Set(cookieDeAutenticacao);
        }
Ejemplo n.º 6
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            UsuarioLogadoModel usuario = ServicoSessao.UsuarioLogado;

            bool usuarioEstaLogado      = ServicoSessao.EstaLogado;
            bool usuarioPossuiPermissao = this.Permissoes.Length < 1;

            if (!usuarioPossuiPermissao)
            {
                usuarioPossuiPermissao = usuario.Permissoes.Any(u => this.Permissoes.Contains(u));
            }

            return(usuarioEstaLogado && usuarioPossuiPermissao);
        }
Ejemplo n.º 7
0
        public ActionResult Login()
        {
            // verifiquei no banco
            // esta ok

            var usuario = new UsuarioLogadoModel()
            {
                Nome       = "Batman",
                Permissoes = new string[1] {
                    "ADMIN"
                }
            };

            Session["USUARIO_LOGADO"] = usuario;

            return(RedirectToAction("Secret"));
        }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            UsuarioLogadoModel usuario = ServicoDeAutenticacao.UsuarioLogado;

            if (usuario == null)
            {
                return(false);
            }
            string[] permissoesRequidas = this.Roles.Split(',')
                                          .Where(p => !String.IsNullOrEmpty(p))
                                          .ToArray();
            foreach (string permissao in permissoesRequidas)
            {
                if (!usuario.Permissoes.Any(p => p.Equals(permissao)))
                {
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 9
0
        public IActionResult Authenticar([FromServices] TokenConfiguration tokenConfigurations)
        {
            var user = new UsuarioLogadoModel();

            user.UID = Guid.NewGuid().ToString("N");

            ClaimsIdentity identity = new ClaimsIdentity(
                new GenericIdentity(user.UID, "Login"),
                new [] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                new Claim(JwtRegisteredClaimNames.UniqueName, user.UID),
                new Claim("userInfo", JsonConvert.SerializeObject(user))
            }
                );

            DateTime dataCriacao   = DateTime.Now;
            DateTime dataExpiracao = dataCriacao.AddMinutes(3);

            user.DataExpiracao = dataExpiracao;

            var signinCredentials = new SigningCredentials(
                new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenConfigurations.SecretyKey)),
                SecurityAlgorithms.HmacSha256);

            var handler       = new JwtSecurityTokenHandler();
            var securityToken = handler.CreateToken(new SecurityTokenDescriptor {
                Issuer             = tokenConfigurations.Issuer,
                Audience           = tokenConfigurations.Audience,
                SigningCredentials = signinCredentials,
                Subject            = identity,
                NotBefore          = dataCriacao,
                Expires            = dataExpiracao
            });

            var tokenGenerated = handler.WriteToken(securityToken);

            return(Ok(new {
                token = tokenGenerated,
                userInfo = user
            }));
        }
Ejemplo n.º 10
0
        public ActionResult Entrar(LoginViewModel loginViewModel)
        {
            if (ModelState.IsValid)
            {
                Usuario usuarioEncontrado =
                    _usuarioServico.BuscarUsuarioPorAutenticacao(
                        loginViewModel.Email, loginViewModel.Senha
                        );

                if (usuarioEncontrado != null)
                {
                    var usuarioLogadoModel = new UsuarioLogadoModel(usuarioEncontrado);

                    ServicoDeSessao.CriarSessao(usuarioLogadoModel);
                    return(AcaoInicial());
                }
                else
                {
                    ModelState.AddModelError("INVALID_USER", "Usuário ou senha inválido.");
                }
            }

            return(View("Index", loginViewModel));
        }
 public static void Autenticar(UsuarioLogadoModel model)
 {
     HttpContext.Current.Session[USUARIO_LOGADO_CHAVE] = model;
 }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            ConvertMD5 objMD5 = new ConvertMD5();

            var CookieAuthentication = filterContext.HttpContext.Request.Cookies[objMD5.getMD5Hash("UserCookieAuthentication")];

            if (CookieAuthentication == null)
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary {
                    { "controller", "Acesso" },
                    { "action", "Login" }
                });
            }
            else
            {
                string _maqUsuarioCookie = CryptographyRepository.Descriptografar(filterContext.HttpContext.Request.Cookies[objMD5.getMD5Hash("UserCookieAuthentication")][objMD5.getMD5Hash("USUMAQNOM")].ToString());
                string _IpUsuarioCookie  = CryptographyRepository.Descriptografar(filterContext.HttpContext.Request.Cookies[objMD5.getMD5Hash("UserCookieAuthentication")][objMD5.getMD5Hash("USUMAQIP4")].ToString());

                string _IpMaquina;

                IPHostEntry hostInfo = Dns.GetHostEntry(Dns.GetHostName());
                _IpMaquina = hostInfo.AddressList.Where(i => i.AddressFamily.Equals(AddressFamily.InterNetwork)).First().ToString();

                if (_maqUsuarioCookie == Dns.GetHostName() && _IpUsuarioCookie == _IpMaquina)
                {
                    var _idUsuarioCookie = CryptographyRepository.Descriptografar(filterContext.HttpContext.Request.Cookies[objMD5.getMD5Hash("UserCookieAuthentication")][objMD5.getMD5Hash("USUIDLOGD")].ToString());

                    int IDUsuario;
                    if (int.TryParse(_idUsuarioCookie, out IDUsuario))
                    {
                        photocloudEntities ContextoUsuario = new photocloudEntities();

                        var Consulta = (from usuario in ContextoUsuario.pho_usuarios
                                        join usuario_acesso in ContextoUsuario.pho_usuario_acesso on usuario.usu_id equals usuario_acesso.usa_fk_usuario
                                        where usuario.usu_id == IDUsuario
                                        select new
                        {
                            usuario.usu_id,
                            usuario.usu_nome,
                            usuario.usu_sobrenome,
                            usuario.usu_diretoriobase,
                            usuario_acesso.usa_email,
                            usuario_acesso.usa_login
                        }).SingleOrDefault();
                        //  select usuario, usuario_acesso).SingleOrDefault();

                        int    _idUsuario        = Consulta.usu_id;
                        string _nomeUsuario      = Consulta.usu_nome;
                        string _sobrenomeUsuario = Consulta.usu_sobrenome;
                        string _emailUsuario     = Consulta.usa_email;
                        string _loginUsuario     = Consulta.usa_login;
                        string _diretorioUsuario = Consulta.usu_diretoriobase;

                        UsuarioLogadoModel objUsuarioLogado = new UsuarioLogadoModel();

                        objUsuarioLogado.idUsuario        = _idUsuario;
                        objUsuarioLogado.nomeUsuario      = _nomeUsuario;
                        objUsuarioLogado.sobrenomeUsuario = _sobrenomeUsuario;
                        objUsuarioLogado.loginUsuario     = _loginUsuario;
                        objUsuarioLogado.diretorioUsuario = _diretorioUsuario;

                        filterContext.Controller.ViewData.Add("vdtUsuarioLogado", objUsuarioLogado);
                    }
                    else
                    {
                        filterContext.Result = new RedirectToRouteResult(
                            new RouteValueDictionary
                        {
                            { "controller", "Acesso" },
                            { "action", "login" }
                        });
                    }
                }
                else
                {
                    filterContext.Result = new RedirectToRouteResult(
                        new RouteValueDictionary
                    {
                        { "controller", "Acesso" },
                        { "action", "login" }
                    });
                }
            }
            base.OnActionExecuting(filterContext);
        }
Ejemplo n.º 13
0
 public static void CriarSessao(UsuarioLogadoModel usuario)
 {
     UsuarioLogado = usuario;
 }
Ejemplo n.º 14
0
        public ActionResult SuperSecret()
        {
            UsuarioLogadoModel usuario = (UsuarioLogadoModel)Session["USUARIO_LOGADO"];

            return(View(usuario));
        }