• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bioshock

Vb 2008 SQL IDUsername / Admin

55 mensagens neste tópico

Boas pessoal.

Gostava de saber se é possível implementar um sistema de login, em que cada utilizador tenha os seus "Documentos".

Ou seja, estou a pensar fazer:

Na tabela "Utilizadores" ter os campos: IDUtilizador , Utilizador e Password.

E depois ligar o campo IDUtilizador às tabelas "Os meus documentos1" e "Os meus documentos2" (Nestas tabelas, terá que ter IDDocumento1 & IDDocumento2, correcto?)

Esta é a primeira questão, a segunda:

(Numa outra aplicação à parte) Ter na tabela "Utilizadores" os campos: Utilizador, Password e Admin.

E depois apenas o Admin teria acesso a alguns dados.

Para já tenho este código que funciona plenamente para fazer Login & Registo.

Contudo, todos os utilizadores tem accesso a tudo e não existem relações.

Login:

 Dim OLE As String = "SELECT count(*) From utilizadores where username = @utilizador and password = @password;"
        Dim myConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & My.Application.Info.DirectoryPath & "\basededados.mdb';Persist Security Info=True;"
        Dim connection As New OleDbConnection(myConnectionString)

        Dim command As New OleDbCommand(OLE, connection)
        command.Parameters.Add("@utilizador", OleDbType.VarChar).Value = TextBox1.Text

        command.Parameters.Add("@password", OleDbType.VarChar).Value = TextBox2.Text
        connection.Open()
        Dim x As Object
        x = command.ExecuteScalar
        If Integer.Parse(x.ToString) = 1 Then
            MsgBox("Login efectuado com sucesso!", MsgBoxStyle.Information, "Login")
            Form1.Show
        Else
            MsgBox("Número de Identificação ou Acesso errados", MsgBoxStyle.Information, "Login")
           Form2.Show
        End If
        connection.Close()
        connection = Nothing
        command = Nothing

Registo:

        ' Texto de ligação à base de dados
       Dim myConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & My.Application.Info.DirectoryPath & "\basededados.mdb';Persist Security Info=True;"
        ' Comando que irá inserir dados na tabela "utilizadores" em que os campos
        ' "username" e "password" são passados através de parâmetros
        Dim OLE As String = "INSERT INTO utilizadores([username], [password]) VALUES (@username, @password);"

        ' Cria uma nova ligação à base de dados
        Dim connection As New OleDbConnection(myConnectionString)

        ' Criação do comando indicando a instrução e a ligação
        Dim command As New OleDbCommand(OLE, connection)

        ' Indicação dos parâmetros que serão inseridos
        command.Parameters.Add("@username", OleDbType.VarChar).Value = TextBox1.Text
        command.Parameters.Add("@password", OleDbType.VarChar).Value = TextBox2.Text

        ' Abre a ligação, executa o comando e guarda em "x" o número de registos inseridos
        connection.Open()

        Dim x As Integer = command.ExecuteNonQuery()
        If x < 1 Then
            MessageBox.Show("A operação efectuada não retomou qualquer resultado.")

        Else
            MsgBox("Registado efectuado com sucesso!")
            FormLogin.TextBox1.Focus()
            FormLogin.TextBox1.Enabled = True
            FormLogin.TextBox2.Enabled = False
            FormLogin.buttONN()
            FormLogin.Button12.Focus()
            Me.Close()

        End If

        ' Fecha a ligação e limpa as variáveis
        connection.Close()
        connection = Nothing
        command = Nothing

Obrigado pela ajuda pessoal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se queres por restrições basta que ao fazer login faças uma decisão simples e consoante o utilizador das ou não acessso a certas funcionalidades e das possibilidade ou não de aceder a tabelas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se queres por restrições basta que ao fazer login faças uma decisão simples e consoante o utilizador das ou não acessso a certas funcionalidades e das possibilidade ou não de aceder a tabelas...

Sim eu sei que é isso, o pior é implementar em código.

Estava a pensar em:

If Administrador then
xpto files open
else
xpto files open2
End if

Mas tenho que dizer o que é "Administrador"..aí é que está o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas queres fazer isso para um utilizador especifico, ou um administrador?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Secalhar não me expressei correctamente.

Eu quero o seguinte:

Entro no Form1 e ele automaticamente detecta se existe ou não Utilizadores na Base de dados.

Caso não existam, abre o Form2 e o 1º Registo obrigatoriamente tem de ser Admin.

Caso existam utilizadores então abre o Form3.

E depois, o Administrador, quando faz login tem acesso a certos dados que os utilizadores comuns não tem.

Fiz-me entender?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então ao fazeres a leitura desses mesmos dados, colocas um if...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que é um If já eu sabia :D

O problema está no resto do código..

Terá haver com o código "If has.rows...??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem....abordagem topdown....senão não nos entendemos...

1º.como estas a fazer a leitura dos dados?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A Leitura dos dados é como está no 1º Post que eu criei.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço desculpa pelo double post, mas tipo:

Aquele código funciona bem, o problema está em implementar o Sistema de Administrador

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas refiro-me relacionadas com os utilizadores...ou seja, só tem uma tabela chamada de "utilizadores" com dois campos "nick" e "senha"???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Naquela aplicação sim. Só tem Username e Password.

E eu queria implementar o Administrador.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois!  então só podes estar a gozar comigo!  lool

tens de fazer uma tabela para inserir dados dos admin e outra para utilizadores (normais)...a partir de aí, faz a leitura!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tipo..repara:

Na tabela "Utilizadores" tenho o campo "Username e Password" mas podia criar o campo "Admin" que tinha como tipo de dados "Sim/Não"...

Era isto que estava a pensar..que dizes?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, podes fazer isso, mas ao carregares aí tens de carregar os dados para a tabela administradores...(a qual nao fizes-te, esse é o teu problema...:D)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ahhm..já percebi.

Portanto, tenho de fazer uma tabela "Administradores"

Apenas basta conter o campo "IDAdministrador" ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

claro! tens de fazer uma tabela administradores com os campos "IDadministrador" ou "nome" como lhe quiseres chamar e um campo "senha"...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Correcto.

Mas não estou a ver como hei de implementar o código (Seja ele SQL ou Access) no meu trabalho.

Ainda sou noob nesta área :P

Mas gosto de aprender, e desde já obrigado por me estares ajudar  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o código é o mesmo que utilizas-te para o outro, mas muda o nome dos campos e tabela...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou fazer isso, só um aparte:

Criei a tal tabela, com os campos "Administrador" e "Password", não tenho que fazer relações nenhumas com as restantes tabelas, correcto? (Visto que também não fiz para os Utilizadores)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora