AJUDA NO MEU SISTEMA DE LOGIN

ACLEMPES 04/02/2011 17:30:47
#364366
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
JONATHANSTECKER 04/02/2011 21:34:36
#364392
Eu criaria um módulo com uma variável pública definindo o acesso do usuário.

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
JONATHANSTECKER 04/02/2011 21:36:15
#364393
Ops, e bem vindo ao fórum.
O pessoal aqui é show de bola!
TECLA 04/02/2011 21:44:00
#364395
Resposta escolhida
Na minha opinião, acho que o seguinte código é um tanto quanto redudante.

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