Usuário com melhor resposta
Variavel global em controller ASP.Net

Pergunta
-
Eu tenho uma classe chamada global.cs que serve para guardar o ID do usuário enquanto estiver logado.
using System;
namespace ProjetoModeloDDD.MVC
{
class Global
{
public int usu_id = 0;
}
}E no UsuarioController.cs eu declaro a classe global como "oGlobal" e gravo o usu_id do usuario no login em Acesso(email, senha)
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using AutoMapper;
using ProjetoModeloDDD.Application.Interface;
using ProjetoModeloDDD.Domain.Entities;
using ProjetoModeloDDD.MVC.ViewModels;
namespace ProjetoModeloDDD.MVC.Controllers
{
public class UsuarioController : Controller
{
Global oGlobal = new Global();
private readonly IUsuarioAppService _usuarioApp;
public UsuarioController(IUsuarioAppService usuarioApp)
{
_usuarioApp = usuarioApp;
}
// GET: usuarios
public ActionResult Index()
{
if (oGlobal.usu_id > 0)
{
var usuarioViewModel = Mapper.Map<IEnumerable<tbl_usuario_usu>, IEnumerable<UsuarioViewModel>>(_usuarioApp.GetAll());
return View(usuarioViewModel);
}
else
{
return Content("Acesso Negado");
}
}
[HttpGet]
public ActionResult Acesso()
{
return View();
}
[HttpPost]
public ActionResult Acesso(string email, string senha)
{
var usuarioViewModel = Mapper.Map<tbl_usuario_usu, UsuarioViewModel>(_usuarioApp.Logar(email, senha));
if (usuarioViewModel == null)
{
return View();
}
else
{
oGlobal.usu_id = usuarioViewModel.usu_id;
}
return View("Details", usuarioViewModel);
}Mas na Index do controller a variavel oGlobal.usu_id está zerada de novo. Como eu mantenho o valor da variável?
Eu preciso que os dados do usuário fiquem salvas em uma variável enquanto estiver logado.
- Editado Emerson Duraes Santos domingo, 3 de abril de 2016 19:45
Respostas
-
O ideal nessa caso seria utilizar Session, pois o id ficará armazenado a sessão do usuário. Ex:
public int usu_id { get { return (int)Session["usu_id"]; } set { Session["usu_id"] = value; } }
- Marcado como Resposta Emerson Duraes Santos segunda-feira, 4 de abril de 2016 02:08
Todas as Respostas
-
O ideal nessa caso seria utilizar Session, pois o id ficará armazenado a sessão do usuário. Ex:
public int usu_id { get { return (int)Session["usu_id"]; } set { Session["usu_id"] = value; } }
- Marcado como Resposta Emerson Duraes Santos segunda-feira, 4 de abril de 2016 02:08
-
-
Finalmente consegui. Apenas segui o tutorial abaixo.
http://rafaelzaccanini.net.br/2014/11/11/asp-net-como-trabalhar-com-session-de-uma-forma-mais-elegante/
Muito bom. Obrigado.
- Editado Emerson Duraes Santos segunda-feira, 4 de abril de 2016 02:08