none
Custom MembershipUser - Melhor forma de implementar RRS feed

  • Pergunta

  • Pessoal fiz este MembershipUser customizado, para pegar alguns outros dados da conexão. A minha dúvida é melhor sempre buscar no banco de dados ou tem algum jeito de colocar em algum cookie ou isto pode ser pior?

    Abs

    public override MembershipUser GetUser(string username, bool userIsOnline)
            {
    
                CustomMembershipUser usuario = new CustomMembershipUser();
    
                if (username != "")
                {
                    using (var dbUser = new ERPContext())
                    {
                        var dados = (from u in dbUser.Usuario
                                     where u.Login == username
                                     select new
                                     {
                                         Nome = u.Nome,
                                         UsuarioID = u.UsuarioID,
                                         EmpresaID = u.EmpresaID,
                                         Empresa = u.Empresa.Nome,
    
                                         EmpresaIDLogada = u.EmpresaIDLogada,
                                         EmpresaLogada = u.EmpresaLogada.Nome,
                                         PessoaIDLogada = u.PessoaIDLogada,
                                         PessoaLogada = u.PessoaLogada.Nome,
                                         PessoaIDSelecionada = u.PessoaIDSelecionada,
                                         PessoaSelecionada = u.PessoaSelecionada.Nome
    
                                     }).FirstOrDefault();
    
                        if (dados != null)
                        {
                            usuario.UsuarioID = dados.UsuarioID;
                            usuario.Nome = dados.Nome;
                            usuario.EmpresaID = dados.EmpresaID;
                            usuario.Empresa = dados.Empresa;
    
                            if (dados.EmpresaIDLogada == null)
                            {
                                usuario.EmpresaIDLogada = dados.EmpresaID;
                                usuario.EmpresaLogada = dados.Empresa;
                                usuario.PessoaIDLogada = 0;
                                usuario.PessoaLogada = "";
                            }
                            else
                            {
                                usuario.EmpresaIDLogada = dados.EmpresaIDLogada.GetValueOrDefault(0);
                                usuario.EmpresaLogada = dados.EmpresaLogada;
                                usuario.PessoaIDLogada = dados.PessoaIDLogada.GetValueOrDefault(0);
                                usuario.PessoaLogada = dados.PessoaLogada;
                            }
    
                            if (dados.PessoaIDSelecionada != null)
                            {
                                usuario.PessoaIDSelecionada = dados.PessoaIDSelecionada.GetValueOrDefault(0);
                                usuario.PessoaSelecionada = dados.PessoaSelecionada;
                            }
                        }
                        else
                        {
                            usuario.Nome = "";
                            usuario.UsuarioID = -1;
    
                            usuario.EmpresaIDLogada = -1;
                            usuario.PessoaIDLogada = -1;
                            usuario.Empresa = "";
    
                            FormsAuthentication.SignOut();
                        }
                    }
                }
                else
                {
                    usuario.Nome = "";
                    usuario.UsuarioID = -1;
    
                    usuario.EmpresaIDLogada = -1;
                    usuario.PessoaIDLogada = -1;
                    usuario.Empresa = "";
    
                    FormsAuthentication.SignOut();
                }
                return usuario;
            }


    Marlon Tiedt
    www.sesmt.com.br

    sexta-feira, 20 de setembro de 2013 01:20

Todas as Respostas