none
Registrar o usuário que inseriu registro RRS feed

  • Pergunta

  • E ai pessoal, beleza?

    Eu de novo com minhas perguntas noobs.

    Estou terminando uma aplicação para contabilizar atividades feitas. Por exemplo: Hoje foram produzidos x produtos no 1º turno, y no 2º turno e z no 3º turno.

    Então criei uma tabela com essas atividades, e numa página asp.net eu enxergo essa tabela num dropdownlist, e tenho 3 textboxes, uma para cada turno mas como são várias plantas inserindo e vários usuários em cada planta, gostaria de inserir na minha tabela Lancamentos_Quantitativos o usuário que inseriu o registro, dar um getUser mas não sei como fazer.

    Outra coisa é: como meu dropdown tem como datasource essa tabela, como faço para inserir na tabela Lancamentos_Quantitativos qual Atividade eu selecionei no Dropdownlist?

    A principio eu criei (para pegar o Usuario):

    private static int CodigoLogado { get; set; }

        public static int Codigologado
        {
            get { return CodigoLogado; }
            set { CodigoLogado = value; }
        }

    ====================================================

    E depois de conectar com o banco, criei:

    try
            {
                SqlCommand comando = new SqlCommand(sql, conn);
                comando.CommandType = CommandType.Text;
                comando.Parameters.AddWithValue("@usuario", CodigoLogado);

            }

    Estou meio perdido ainda. Se puderem me ajudar, agradeço bastante.

    Obrigado


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    sexta-feira, 28 de março de 2014 13:55

Respostas

  • Leopoldo, tudo bem cara?

    Bom, pelo menos aqui na empresa o fluxo é o seguinte:

    Todo usuário tem uma sessão que é gravada no banco vinculada ao seu ID de usuário de uma tabela com os dados destes usuários.

    Ao navegar entre as telas, a sessão sempre é passada.

    Assim, quando há alguma operação no banco, conseguimos chegar no usuário por essa sessão.

    Deus abençoe!

    Abração!

    terça-feira, 8 de abril de 2014 12:19
  • Leopoldo, que Banco você esta usando?

    pra usar o entity framework é so criar um model (add item no projeto guia data: ado.Net Entity Data Model)

    dai você importa pra la seu banco, usando entity você trabalha com os dados orientados a objeto, eu particularmente acho bem mais facil de trabalhar e fazer um crud por exemplo.

    sexta-feira, 4 de abril de 2014 14:31

Todas as Respostas

  • Já tentou  pegar o usuário que esta logado por sessão? fica mais facil 
    sexta-feira, 28 de março de 2014 20:24
  • Como o Bernado Cervo falou você poderia pegar o código do usuário conectado  através da seção, você poderia na hora que você for a consulta no banco de dados para o usuário se conectar você retornar em sua consulta SQL o código do seu usuário logado e depois atribuir a sua Session. Segue abaixo um exemplo:

    //Gravar seu usuário na Session
    
    Session["codigoUsuario"] = codigoUsuario //Valor obtido do banco de dados
    
    //Usar valor da Session
    
    CodigoLogado = Convert.ToInt32(Session["codigoUsuario"].ToString());

    Espero que tenha lhe ajudado.

    Anderson Santos

    sexta-feira, 28 de março de 2014 21:12
  • Então pessoal,

    Acho que é isso mesmo.

    Resumindo, eu quero registrar na tabela qual usuário adicionou o respectivo registro.

    J.Anderson, eu não entendi muito bem o que respondeu.

    Qual parte que faz a mágica? Poderia me explicar com mais detalhes?

    Obrigado.


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    segunda-feira, 31 de março de 2014 12:18
  • Poste o código completo da função que faz o Login do seu sistema, incluindo a query

    segunda-feira, 31 de março de 2014 12:22
  • Eduardo, eu ainda não trabalhei nesta função. Estou fazendo aos poucos e o login seria o próximo passo.

    Eu já tenho uma tabela com os usuários. Já roda uma aplicação com esses logins e eu queria aproveitar os já existentes e se possível usar as mesmas senhas.


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    segunda-feira, 31 de março de 2014 16:17
  • Leopoldo

    Tenho aqui um exemplo de um sistema bem simples que desenvolvi

    usei entity framework 

    segue o código do login  que salva na session os dados do usuario logado

     var query = from p in db.USERS
                                            where p.ATIVO == true &&
                                                p.EXCLUIDO == false &&
                                                p.SENHA == senhaAtual &&
                                                p.LOGIN == txtLogin.Text
                                            select new
                                            {
    
                                                p.ID_USER,
                                                p.NOME,
                                                p.LOGIN,
                                                p.TIPO_USER,
                                                p.SENHA
                                            };
    
                                if (query.Count() > 0)
                                {
                                    foreach (var item in query)
                                    {
                                        Session["LOG_USER_ID"] = item.ID_USER;
                                        Session["LOG_USER_NOME"] = item.NOME;
                                        Session["LOG_USER_LOGIN"] = item.LOGIN;
                                        Session["LOG_USER_PASS"] = item.SENHA;
                                        Session["LOG_USER_TIPO"] = item.TIPO_USER;
                                        Session["LOG_USER_NIP"] = GetIP();
                                        log.Acesso(item.ID_USER, txtLogin.Text, true, GetIP());
                                       if (item.TIPO_USER == "A")
                                       {
                                           Response.Redirect("/YourAdmin/");
                                       }
                                       else
                                            Response.Redirect("/Chamados/");
                                    }
    }
    depois na hora que for inserir um registro pega essa session com o código do usuario e salva na tabela que desejas


    segunda-feira, 31 de março de 2014 18:18
  • Beleza Bernardo mas para trabalhar com Entity eu preciso adicionar algum namespace  especifico?

    Eu estou tentando aprender com um template do visual studio, então ele já vem com muita coisa, como trabalhar com membership e tudo mais mas não faço ideia de como funciona.

    O ASP.NET que eu tenho é:

     <asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
                <LayoutTemplate>
                    <p class="validation-summary-errors">
                        <asp:Literal runat="server" ID="FailureText" />
                    </p>
                    <fieldset>
                        <legend>Log in Form</legend>
                        <ol>
                            <li>
                                <asp:Label runat="server" AssociatedControlID="UserName">Nome de usuário</asp:Label>
                                <asp:TextBox runat="server" ID="UserName" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" CssClass="field-validation-error" ErrorMessage="Nome de usuário é obrigatório." />
                            </li>
                            <li>
                                <asp:Label runat="server" AssociatedControlID="Password">Senha</asp:Label>
                                <asp:TextBox runat="server" ID="Password" TextMode="Password" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="Password" CssClass="field-validation-error" ErrorMessage="Senha é obrigatório" />
                            </li>

                        </ol>
                        <asp:Button runat="server" CommandName="Login" Text="Entrar" />
                    </fieldset>
                </LayoutTemplate>
            </asp:Login>

    =========================================

    E C# é:

    public partial class Login : Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                RegisterHyperLink.NavigateUrl = "/Register.aspx";
                OpenAuthLogin.ReturnUrl = Request.QueryString["ReturnUrl"];

                var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
                if (!String.IsNullOrEmpty(returnUrl))
                {
                    RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl;
                }
            }
        }


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    sexta-feira, 4 de abril de 2014 14:02
  • Leopoldo, que Banco você esta usando?

    pra usar o entity framework é so criar um model (add item no projeto guia data: ado.Net Entity Data Model)

    dai você importa pra la seu banco, usando entity você trabalha com os dados orientados a objeto, eu particularmente acho bem mais facil de trabalhar e fazer um crud por exemplo.

    sexta-feira, 4 de abril de 2014 14:31
  • Leopoldo, tudo bem cara?

    Bom, pelo menos aqui na empresa o fluxo é o seguinte:

    Todo usuário tem uma sessão que é gravada no banco vinculada ao seu ID de usuário de uma tabela com os dados destes usuários.

    Ao navegar entre as telas, a sessão sempre é passada.

    Assim, quando há alguma operação no banco, conseguimos chegar no usuário por essa sessão.

    Deus abençoe!

    Abração!

    terça-feira, 8 de abril de 2014 12:19