Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC3访问控制中的会话和表单身份验证_C#_Asp.net Mvc 3_Session - Fatal编程技术网

C# MVC3访问控制中的会话和表单身份验证

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

我使用会话存储用户数据,从而避免不必要的数据库访问。但是,每个访问控制器、数据表单和身份验证都会更新,并且数据会话号

有什么更好的办法来解决这个问题? 将大会话的生命周期延长,或使一个基本控制器或每个被称为ActionResult的控制器延长会话的生命周期

详细信息,会话我使用它来装载页面的标题

此代码用于创建会话

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,而不是会话,让她呼气。我需要知道保持对控制器会话的每次访问都有效的最佳方法。