You can use the session object to store the information.
The Session object allows the developer to obtain the data, previously persisted in the session, for a certain time in the Session (default 20 minutes). But, use this feature sparingly, storing only the required data of your user, since session data is stored by default in memory, too much data can trigger scalability issues.
//Variáveis do usuário
string firstName = "Jeff";
string lastName = "Smith";
string city = "Seattle";
//Salvando informações na sessão.
Session["FirstName"] = firstName;
Session["LastName"] = lastName;
Session["City"] = city;
//Lendo variáveis da sessão.
firstName = (string)(Session["FirstName"]);
lastName = (string)(Session["LastName"]);
city = (string)(Session["City"]);
Example:
public class MeuController
{
//Trabalhando com a session em uma propriedade do controller
public static Pessoa dadosPessoa
{
get
{
if(Http.Context.Current.Session["pessoaX"] == null)
{
Pessoa p = new Pessoa();
//Cria uma variável na session chamada pessoaX contendo um objeto p
Http.Context.Current.Session["pessoaX"] = p;
return p;
}
else
{
return (Pessoa)Http.Context.Current.Session["pessoaX"];
}
}
}
public ActionResult Index()
{
//Recuperando dados previamente persistidos na sessão
var pessoa = (Pessoa)(Session["pessoaX"]);
var lista = obterDadosRepositorio(pessoa);
return View("Index", lista)
}
}
//Acessando dados na view com Razor
@{ var sessionVar = Session["pessoaX"]; }
ou
<%= this.Session["pessoaX"] %>
When a user logs into your application, you could populate and add an object with that user's data in the session and retrieve it when desired.