Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

reinaldo polato

Controle de usuarios

Recommended Posts

e ai galera blz?

eu estou criando um sistema em c# com banco de dados sql server 2012

como eu faço pra so o administrador ter acesso total do sistema e os vendedores ter acesso so pra fazer o cadastro de produtos e clientes

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais facíl a fazer e botar juntamente ao usuário no banco de dados uma parte sobre o que o usuário é (Se for apenas dois pode ser em Boolean, True = ADM, False = usuario), e na hora que for iniciar o formulario principal depois do de login, verificar, e se ele for 1 (Adm) libera tudo, se for 0 (Usuario) Limita alguns comandos, botões botando eles como enable = false.

Espero que você etnha intendido.

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites
e ai galera blz

eu criei a tabela login e coloquei o usuario, senha e perfil


ai eu coloquei o usuario e senha e no perfil eu coloquei administrador e vendedor mais ele não bloqueia os menus para o vendedor ele acessa tudo


como eu faço para o vendedor não acessar algumas funções do sistema


c# e bando de dados sql server 2012


public partial class login : Form

{

//int contError = 0;



public login()

{

InitializeComponent();

}


public static string usuarioConectado;

public static string nivelAcesso;



private void button1_Click(object sender, EventArgs e)

{

SqlConnection cn = new SqlConnection("Data Source=rkpolato1200.ddns.net,1433;Network Library=DBMSSOCN;Initial Catalog=db_login;User ID=sa;Password=Renovo10203040;");


SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM login WHERE Usuario = @Usuario AND senha = @Senha AND Perfil = @Perfil", cn);


cmd.Parameters.Add("@Usuario", SqlDbType.VarChar).Value = textBoxUsuario.Text;

cmd.Parameters.Add("@Senha", SqlDbType.VarChar).Value = textBoxSenha.Text;

cmd.Parameters.Add("@Perfil", SqlDbType.VarChar).Value = comboBoxPerfil.Text;


cn.Open();


SqlDataReader le = null;



le = cmd.ExecuteReader();



if (le.Read())

{

this.Hide();

usuarioConectado = textBoxUsuario.Text;

nivelAcesso = comboBoxPerfil.Text;



}

else

{

MessageBox.Show(textBoxUsuario,"Usuario Nao encontrado!");

MessageBox.Show(textBoxSenha, "Senha Nao encontrado!");

MessageBox.Show(comboBoxPerfil, "Usuario e senha Nao encontrado");

}


cn.Close();

}


private void abrir()

{


menu rss = new menu();

rss.Show();


}

}


}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o seu sistema só for ter essas duas divisões então você pode setar diretamente no cadastro de menus uma propriedade que identifica se o item vai ou não ser visto por vendedores, se for mais dinamico você pode criar um relacionamento em uma tabela de Menu X Perfil

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende, existem muitos jeitos de fazer essa implementação. Você pode criar um menu dinâmico alocando cada objeto do menu em uma classe "Menu" que teria essas propriedades, dessa forma você pode acessar tudo em um unico ugar e não ficar replicando código.

 

Outro meio é ir tela a tela e adicionar uma lógica de verificação de permissões, mas esta lógica teria que estar ligada a um método em uma classe estática que você possa acessar de qualquer lugar (assim não há duplicação de código), esta não é a melhor solução nem de longe, mas é a mais fácil e não precisa reescrever todo o código do menu.

 

Agora, se você esta tratando o menu separadamente, você pode cadastrar cada um deles em uma tabela de relacionamento Menu X Usuário, depois no primeiro acesso você poderia preencher uma classe com os dados que você trouxe do banco para aquele usuário e usar esta mesma classe durante toda a execução para montar o menu a cada acesso de tela. Seria a melhor solução porque você não teria que mexer no menu em si, mas você vai ter que reescrever boa parte da aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.