Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.
:)
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();
}
}
}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
e ai blz?
como que eu seto diretamente no cadastro de menu que identifica se o item vai ou não ser visto por vendedores?
valeu pela ajuda
Você tem os menus cadastrados em um banco de dados? Ou eles estão apenas em telas?
eles estão so em telas
é melhor eu criar o menu cadastrado em um banco de dados?
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.
Você vai ter que implementar essa lógica dentro do sistema, não existe um meio mais rapido para isto, infelizmente.