C# MVC3访问控制中的会话和表单身份验证
我使用会话存储用户数据,从而避免不必要的数据库访问。但是,每个访问控制器、数据表单和身份验证都会更新,并且数据会话号 有什么更好的办法来解决这个问题? 将大会话的生命周期延长,或使一个基本控制器或每个被称为ActionResult的控制器延长会话的生命周期 详细信息,会话我使用它来装载页面的标题 此代码用于创建会话C# MVC3访问控制中的会话和表单身份验证,c#,asp.net-mvc-3,session,C#,Asp.net Mvc 3,Session,我使用会话存储用户数据,从而避免不必要的数据库访问。但是,每个访问控制器、数据表单和身份验证都会更新,并且数据会话号 有什么更好的办法来解决这个问题? 将大会话的生命周期延长,或使一个基本控制器或每个被称为ActionResult的控制器延长会话的生命周期 详细信息,会话我使用它来装载页面的标题 此代码用于创建会话 public static void UsuarioLogar(string login) { CustomMembershipUser usuario = new Cust
public static void UsuarioLogar(string login)
{
CustomMembershipUser usuario = new CustomMembershipUser();
using (var dbUser = new ERPContext())
{
var dados = (from u in dbUser.Usuario
where u.Login == login
select new
{
Nome = u.Nome,
UsuarioID = u.UsuarioID,
EmpresaID = u.EmpresaID,
EmpresaLogada = u.Empresa,
PessoaLogada = u.PessoaLogada
}).FirstOrDefault();
if (dados != null)
{
usuario.UsuarioID = dados.UsuarioID;
usuario.Nome = dados.Nome;
usuario.EmpresaID = dados.EmpresaID;
usuario.EmpresaLogada = dados.EmpresaLogada;
usuario.PessoaLogada = dados.PessoaLogada;
if (usuario.PessoaLogada != null)
usuario.Acesso = "Restrito";
else
usuario.Acesso = "Full";
HttpContext.Current.Session["usuarioLogado"] = usuario;
}
else
{
HttpContext.Current.Session["usuario"] = null;
FormsAuthentication.SignOut();
}
}
}
我会避免会话,尤其是在使用MVC时——它不适合web
另一种选择是在方法中使用和设置细节。我认为英语不是你的第一语言,但这个问题是不可理解的。您在会话快速结束或不扩展方面有问题吗?我的问题是,每次访问控制器时都会更新FormsAuthentication,而不是会话,让她呼气。我需要知道保持对控制器会话的每次访问都有效的最佳方法。