MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    (ajuda) login segurança

    avatar
    jrcarlomagno
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 25
    Registrado : 23/10/2012

    (ajuda) login segurança Empty (ajuda) login segurança

    Mensagem  jrcarlomagno 9/11/2012, 13:57

    Bom dia, Amigos
    Estou com uma duvida, estou querendo adiciona nivel de segurança no meu sistema mais não estou conseguindo.
    estou querendo usar esse codigo no meu sistema abaixo, sendo o esquema de segurança. sendo que esse codigo e o codigo abaixo foi copiado de sistema posta por colegas para estudo.
    ( sou novato por isso não conheço muito).


    Private Sub cmdEntrar_Click()
    Dim Identificacao As Integer

    If Me.txtSenha.Value = DLookup("[Senha]", "[TBLUsers]", "[User] = '" & Me.txtUser & "'") Then
    Identificacao = DLookup("[NivelSeguranca]", "[TBLUsers]", "[User] = '" & Me.txtUser & "'")
    Select Case Identificacao
    Case 1
    stDocName = "frmAdministrador"
    Case 2
    stDocName = "frmUsuario"
    End Select
    DoCmd.Close
    DoCmd.OpenForm stDocName
    Else
    MsgBox "Senha Incorreta, coloque novamente.", vbInformation + vbOKOnly, "Erro"
    Me.txtSenha.Value = ""
    Exit Sub
    End If

    End Sub



    Esse Codigo abaixo é o codigo que estou utilizando no meu sistema, esta funcionando mais não tem controle de segurança, por esse motivo estou querendo utilizar esse acima, ou editar o meu com os criterios acima



    Private Sub BotaoLogin_Click()
    Static tentativas As Byte 'Apos tentar mais de tres vezes o sistema é encerrado
    tentativas = tentativas + 1
    If tentativas > 3 Then
    MsgBox "Foram Esgotadas as Tentativas de Acesso!" & Chr(13) & "O Programa Será Fechado.", _
    vbCritical, " Administrador do Sistema!"
    Application.Quit
    Exit Sub
    End If
    If Not IsNull(CaixaLogin) And Not IsNull(CaixaSenha) Then
    If verificaLogin(CaixaLogin, CaixaSenha) Then
    DoCmd.Close
    DoCmd.OpenForm "Menu"

    Else
    MsgBox "Senha inválida!", vbExclamation, "Login"
    Me.CaixaSenha = ""
    Me.CaixaSenha.SetFocus
    End If
    End If
    End Sub




    Obrigado.


    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    (ajuda) login segurança Empty (ajuda) login segurança

    Mensagem  good guy 9/11/2012, 19:20

    olá jrcarlomagno,

    Tente este código:

    SEGURANÇA DE DADOS

    Vamos supor que você queira classificar seus usuários pelo seu nível de permissão.
    Ex: Administrador, Funcionário, Cliente

    Crie então uma tabela de Níveis assim: Codigo(Numero), Nivel (Texto)
    Crie uma tabela de Cadastro assim: Codigo(Numeração Automática), login(Texto), senha(Texto),
    Nivel(Texto/Combo), SoLeitura(Sim/Não), Permitido(Sim/Não)

    Private Sub cmdCancelar_Click() 'Botão Cancelar do formulário de login
    DoCmd.Close acForm, "frmTesteLogin", acSaveYes
    End Sub

    Private Sub cmdEntrar_Click() 'Botão OK do formulário de login
    If Not IsNull(login) And Not IsNull(senha) Then
    If verificaLogin(login, senha) = True Then
    DoCmd.Close acForm, "frmTesteLogin", acSaveYes
    End If
    End If
    End Sub

    'Funcão que verifica a existência do usuário e seu nível de permissão

    Public Function verificaLogin(sLogin As String, sSenha As String)
    Dim nLogin As String
    Dim nSenha As String
    Dim xLogin As String
    Dim yLogin As String
    Dim zLogin As String
    Dim nCodigo As Integer
    Dim x As String
    Dim y As String
    Dim z As String

    nLogin = login 'Nome do usuário digitado na caixa de texto 'login'
    nSenha = senha 'Senha do usuário digitado na caixa de texto 'senha'


    x = Nz(DLookup("Nivel", "tblNiveis", "Codigo = 1"))
    y = Nz(DLookup("Nivel", "tblNiveis", "Codigo = 2"))
    z = Nz(DLookup("Nivel", "tblNiveis", "Codigo = 3"))


    nCodigo = Nz(DLookup("Codigo", "tblCadastro", "login = '" & nLogin & "'"))
    sLogin = CStr(Nz(DLookup("login", "tblCadastro", "login = '" & nLogin & "'")))
    sSenha = CStr(Nz(DLookup("senha", "tblcadastro", "login = '" & sLogin & "'")))


    xLogin = CStr(Nz(DLookup("login", "tblCadastro", "Nivel = '" & x & "' And Codigo = " & nCodigo)))
    yLogin = CStr(Nz(DLookup("login", "tblCadastro", "Nivel = '" & y & "' And Codigo = " & nCodigo)))
    zLogin = CStr(Nz(DLookup("login", "tblCadastro", "Nivel = '" & z & "' And Codigo = " & nCodigo)))


    If sLogin <> "" Then 'Valida usuário
    MsgBox "Login válido !!! ", vbInformation, "Testa Login"
    If sSenha = nSenha Then 'Valida senha do usuário
    MsgBox "Senha válida !!!", vbInformation, "Testa Login"
    If xLogin = sLogin Then
    MsgBox "Seu nivel é de " & x & "", vbExclamation, "Testa Login"
    DoCmd.OpenForm "frmteste", acNormal, , , acFormEdit 'Administrador
    DoCmd.Close acForm, "frmTesteLogin", acSaveYes
    ElseIf yLogin = sLogin Then
    MsgBox "Seu nivel é de " & y & "", vbExclamation, "Testa Login"
    DoCmd.OpenForm "frmteste", acNormal, , , acFormAdd 'Funcionário
    DoCmd.Close acForm, "frmTesteLogin", acSaveYes
    ElseIf zLogin = sLogin Then
    MsgBox "Seu nivel é de " & z & "", vbExclamation, "Testa Login"
    DoCmd.OpenForm "frmteste", acNormal, , , acFormReadOnly 'Cliente
    DoCmd.Close acForm, "frmTesteLogin", acSaveYes
    Else
    Exit Function
    End If
    Else
    MsgBox "Senha inválida !!!", vbInformation, "Testa Login"
    End If

    Else
    MsgBox "Login inválido !!!", vbInformation, "Testa Login"
    End If
    End Function

    Baixe o exemplo aqui mesmo no forum na seção Repositório de Exemplos Access:
    http://maximoaccess.forumeiros.com/f7-repositorio-de-exemplos-ms-access
    ou no meu site:
    http://www.goodguyaccessvba.com.br/dicas_vba_13.html

      Data/hora atual: 23/11/2024, 15:29