AJUDA NO MEU SISTEMA DE LOGIN
Oi sou novo aqui nesse forum, estou fazendo um trabalho para o curso que estou fazendo de um [Ô]sistema de cadastro de equipamentos[Ô], o problema é que quero fazer um sistema de login com controle de acesso, eu já consegui fazer o sistema de login funcionar porem ele esta sem o controle de acesso ou seja qualquer usuario que se logar vai ter acesso ao sistema todo, abaixo eu vou descrever como queria que funcionase e o codigo completo do meu sitema de login.
para começar tenho meu form login.vb com as seguintes configurações:
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim connection As New SqlClient.SqlConnection
Dim command As New SqlClient.SqlCommand
Dim adaptor As New SqlClient.SqlDataAdapter
Dim dataset As New DataSet
Dim vnivel As String
connection.ConnectionString = ([Ô]Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\gerencia.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True[Ô])
command.CommandText = [Ô]SELECT login, senha, acesso FROM acesso WHERE login=[ô][Ô] & UsernameTextBox.Text & [Ô][ô] and senha=[ô][Ô] & PasswordTextBox.Text & [Ô][ô] [Ô]
connection.Open()
command.Connection = connection
adaptor.SelectCommand = command
adaptor.Fill(dataset, [Ô]0[Ô])
Dim count = dataset.Tables(0).Rows.Count
If count > 0 Then
Principal.Show()
Me.Hide()
Else
MsgBox([Ô]Login invalido verifique seu login e senha[Ô], MsgBoxStyle.Critical)
UsernameTextBox.Clear()
PasswordTextBox.Clear()
End If
End Sub
esse codigo esta funcionando porem sem o controle de acesso
bem agora a parte de precisso tenho no meu banco de dados chamado [Ô]gerencia.mdf[Ô] a tabela [Ô]acesso[Ô] com os campos (id, nome, login. senha e acesso), gostaria que depois de passar pelo login e senha foce verificado o acesso e depois redirecionado para um form MDI com o nome principal.vb que contem os menus. Abaixo segue o exemplo da pesquisa
se o usuario tiver o acesso como [Ô]A[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoToolStripMenuItem = true
CadastroToolStripMenuItem = true
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = true
[Ô] B[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoToolStripMenuItem = true
CadastroToolStripMenuItem = False
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = true
[Ô]C[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoDeEquipamentoToolStripMenuItem = false
AtivaçãoDePlacaToolStripMenuItem = false
AuteraçãoDeNomeToolStripMenuItem = false
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = false
desculpem se fui muito extenso na minha pergunta mas como disse sou novo por aqui
desde já eu agradeço
para começar tenho meu form login.vb com as seguintes configurações:
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim connection As New SqlClient.SqlConnection
Dim command As New SqlClient.SqlCommand
Dim adaptor As New SqlClient.SqlDataAdapter
Dim dataset As New DataSet
Dim vnivel As String
connection.ConnectionString = ([Ô]Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\gerencia.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True[Ô])
command.CommandText = [Ô]SELECT login, senha, acesso FROM acesso WHERE login=[ô][Ô] & UsernameTextBox.Text & [Ô][ô] and senha=[ô][Ô] & PasswordTextBox.Text & [Ô][ô] [Ô]
connection.Open()
command.Connection = connection
adaptor.SelectCommand = command
adaptor.Fill(dataset, [Ô]0[Ô])
Dim count = dataset.Tables(0).Rows.Count
If count > 0 Then
Principal.Show()
Me.Hide()
Else
MsgBox([Ô]Login invalido verifique seu login e senha[Ô], MsgBoxStyle.Critical)
UsernameTextBox.Clear()
PasswordTextBox.Clear()
End If
End Sub
esse codigo esta funcionando porem sem o controle de acesso
bem agora a parte de precisso tenho no meu banco de dados chamado [Ô]gerencia.mdf[Ô] a tabela [Ô]acesso[Ô] com os campos (id, nome, login. senha e acesso), gostaria que depois de passar pelo login e senha foce verificado o acesso e depois redirecionado para um form MDI com o nome principal.vb que contem os menus. Abaixo segue o exemplo da pesquisa
se o usuario tiver o acesso como [Ô]A[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoToolStripMenuItem = true
CadastroToolStripMenuItem = true
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = true
[Ô] B[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoToolStripMenuItem = true
CadastroToolStripMenuItem = False
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = true
[Ô]C[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoDeEquipamentoToolStripMenuItem = false
AtivaçãoDePlacaToolStripMenuItem = false
AuteraçãoDeNomeToolStripMenuItem = false
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = false
desculpem se fui muito extenso na minha pergunta mas como disse sou novo por aqui
desde já eu agradeço
Eu criaria um módulo com uma variável pública definindo o acesso do usuário.
No Select para verificar usuário e senha já passe a permissão para essa variável.
Depois no Load do MDI faça essa configuração de acesso.
Public Acesso As String
No Select para verificar usuário e senha já passe a permissão para essa variável.
Depois no Load do MDI faça essa configuração de acesso.
Select Case Acesso
Case [Ô]A[Ô]
AtivaçãoToolStripMenuItem.Enable = True
CadastroToolStripMenuItem.Enable = True
ConsultaToolStripMenuItem.Enable = True
AgendaToolStripMenuItem.Enable = True
Case [Ô]B[Ô]
AtivaçãoToolStripMenuItemEnable = True
CadastroToolStripMenuItem.Enable = True
ConsultaToolStripMenuItem.Enable = True
AgendaToolStripMenuItem.Enable = True
Case [Ô]C[Ô]
AtivaçãoDeEquipamentoToolStripMenuItem.Enable = True
AtivaçãoDePlacaToolStripMenuItem.Enable = True
AuteraçãoDeNomeToolStripMenuItem.Enable = True
ConsultaToolStripMenuItem.Enable = True
AgendaToolStripMenuItem.Enable = True
End Select
Ops, e bem vindo ao fórum.
O pessoal aqui é show de bola!
O pessoal aqui é show de bola!
Na minha opinião, acho que o seguinte código é um tanto quanto redudante.
Ou este aqui:
SUGESTÃO
Crie uma tabela chamada PERFIL e cria um campo para cada permissão (já que são somente estas 5).
Ao efetuar a autenticação do USUÃRIO, você obtêm os valores da tabela PERFIL, com base no código do USUÃRIO logado.
Para restringir / liberar o acesso, você só precisa de cinco linhas:
Select Case Acesso
Case [Ô]A[Ô]
AtivaçãoToolStripMenuItem.Enable = True
CadastroToolStripMenuItem.Enable = True
ConsultaToolStripMenuItem.Enable = True
AgendaToolStripMenuItem.Enable = True
Case [Ô]B[Ô]
AtivaçãoToolStripMenuItemEnable = True
CadastroToolStripMenuItem.Enable = True
ConsultaToolStripMenuItem.Enable = True
AgendaToolStripMenuItem.Enable = True
Case [Ô]C[Ô]
AtivaçãoDeEquipamentoToolStripMenuItem.Enable = True
AtivaçãoDePlacaToolStripMenuItem.Enable = True
AuteraçãoDeNomeToolStripMenuItem.Enable = True
ConsultaToolStripMenuItem.Enable = True
AgendaToolStripMenuItem.Enable = True
End Select
Ou este aqui:
se o usuario tiver o acesso como [Ô]A[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoToolStripMenuItem = true
CadastroToolStripMenuItem = true
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = true
[Ô] B[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoToolStripMenuItem = true
CadastroToolStripMenuItem = False
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = true
[Ô]C[Ô] abre o form Principal.vb com os seguintes menus abilitados
AtivaçãoDeEquipamentoToolStripMenuItem = false
AtivaçãoDePlacaToolStripMenuItem = false
AuteraçãoDeNomeToolStripMenuItem = false
ConsultaToolStripMenuItem = true
AgendaToolStripMenuItem = false
SUGESTÃO
Crie uma tabela chamada PERFIL e cria um campo para cada permissão (já que são somente estas 5).
Ao efetuar a autenticação do USUÃRIO, você obtêm os valores da tabela PERFIL, com base no código do USUÃRIO logado.
Para restringir / liberar o acesso, você só precisa de cinco linhas:
AtivaçãoDeEquipamentoToolStripMenuItem.Enable = Double.Parse(dataset.Tables(0).Rows(0)([Ô]equipamento[Ô]).ToString())
AtivaçãoDePlacaToolStripMenuItem.Enable = Double.Parse(dataset.Tables(0).Rows(0)([Ô]placa[Ô]).ToString())
AuteraçãoDeNomeToolStripMenuItem.Enable = Double.Parse(dataset.Tables(0).Rows(0)([Ô]nome[Ô]).ToString())
ConsultaToolStripMenuItem.Enable = Double.Parse(dataset.Tables(0).Rows(0)([Ô]consulta[Ô]).ToString())
AgendaToolStripMenuItem.Enable = Double.Parse(dataset.Tables(0).Rows(0)([Ô]agenda[Ô]).ToString())
Tópico encerrado , respostas não são mais permitidas