none
Problema com HttpContext.Current.Session ASP.NET MVC4 RRS feed

  • Pergunta

  • Estou com dificuldades ao obter as informações do usuario que criei a sessão.
    public ActionResult Index(string email, string senha)
            {
                var app = new UsuarioAplicacao();
                var usuarioLogon = app.Logar(email, senha);
                if (usuarioLogon != null)
                {
                    FormsAuthentication.SetAuthCookie(usuarioLogon.Nome, false);
                    Session["permissao"] = usuarioLogon;
                    return RedirectToAction("Painel");
    
                }
                ViewBag.erro = "Usuario e senha invalidos";
                return View();
            }

    preciso pegar o nivel do usuario que está na sessao "permissao", mas não estou conseguindo.

    public static bool Autenticado(string permissao = "")
            {
                if (!HttpContext.Current.User.Identity.IsAuthenticated)
                    return false;
    
                if (!string.IsNullOrEmpty(permissao))
                {
                    if (HttpContext.Current.Session["permissao"] == null)
                        return false;
                    if (HttpContext.Current.Session["permissao"].ToString().ToLower() != permissao.ToLower())
                        return false;
                }
    
                return true;
            }
    quando vou comparar 
    HttpContext.Current.Session["permissao"].ToString().ToLower() != permissao.ToLower()

    não consigo pegar o valor do nível do usuário e o nome na sessão, como posso fazer isso?

    segunda-feira, 28 de abril de 2014 14:53

Todas as Respostas

  • Acho que pra pegar a Sessão corretamente seu método não pode ser "static".

    Ele precisa de uma instância de controller para recuperar a sessão corretamente, como está "static" o contexto do método está para a Aplicação e não para a requisição corrente.

    segunda-feira, 28 de abril de 2014 17:01
    Moderador