Usuário com melhor resposta
Registrar o usuário que inseriu registro

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. ;)
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!
- Marcado como Resposta Leopoldo Nascimento domingo, 30 de novembro de 2014 14:09
-
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.
- Marcado como Resposta Leopoldo Nascimento domingo, 30 de novembro de 2014 14:09
Todas as Respostas
-
-
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
-
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. ;)
-
-
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. ;)
-
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
- Editado Bernardo Cervo segunda-feira, 31 de março de 2014 18:30
-
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. ;)
-
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.
- Marcado como Resposta Leopoldo Nascimento domingo, 30 de novembro de 2014 14:09
-
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!
- Marcado como Resposta Leopoldo Nascimento domingo, 30 de novembro de 2014 14:09