Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[Tutoria] Formulário de Login - Protegendo aplicações [DELPHI]


~ Heatlex.
 Compartilhar

Posts Recomendados

Formulário de Login - Protegendo aplicações contra o acesso não autorizado

PARA TABELAS PARADOX.

figura1.jpg

Selecione o menu File > New > Table

figura2.jpg

Surgirá a caixa Create Table. Selecione Paradox 7 e clique em OK.

figura3.jpg

A janela que surge é utilizada para definir a estrutura da tabela. Nela há a coluna Field Name que define o nome do campo, a coluna Type que define o tipo de dados que será armazenado no campo, a coluna Size, que define o tamanho e a coluna Key identifica se a coluna faz parte da chave primária da tabela.

Crie um campo chamado Senha, alterando o valor da coluna Field Name; em Type, clique com o botão direito sobre a coluna e marque a opção alpha (tipo alfanumérico); em Size insira o valor 10.

figura4.jpg

Clique em Save As para salvar a tabela. Na janela que surge selecione o local onde a tabela será armazenada e a nomeie de Senha.

figura5.jpg

Obs.: O ideal é que crie uma pasta para armazenar todos os objetos do sistema, neste exemplo optei por criar uma chamada Login.

Pronto à tabela foi criada! Agora vamos cadastrar uma senha.

Abra a tabela através do menu File > Open > Table

figura6.jpg

Selecione o botão Edit Data presente na parte superior a direita do Database Desktop

figura7.jpg

Selecione a segunda coluna Senha e atribua a ela o valor MASTER. Esta será a senha de acesso à tabela.

Vamos agora proteger esta tabela, pois se qualquer um puder acessá-la nossa aplicação ficará desprotegida. Clique no menu Table > Restructure

figura8.jpg

A direita da janela que surge, clique na caixa Table properties e selecione Password Security

figura9.jpg

lique em Define para exibir a janela Password Security. Nela digite a senha que irá protegê-la em Master password e a repita em Verify master password. Selecione o botão OK para confirmar. E depois em save na janela Restructure. Neste exemplo optei pela senha USER.

Agora toda vez em que a tabela for acessada esta senha será solicitada pela janela Enter Password(s).

figura10.jpg

Agora, para podermos utilizar a tabela no programa, é necessário criar um alias, um apelido, que será responsável em fazer a conexão com o sistema. Para isto, siga os passos descritos a seguir:

Acesse o SQL Explorer pelo menu iniciar no menu onde o Delphi foi instalado, ou com o Delphi aberto, acesse o menu Database e clique em Explore.

Selecione o menu Object > New. Na janela que surge, selecione o tipo de alias que esta sendo criado. O tipo Standard é o utilizado por tabelas Paradox, portanto com ele selecionado clique em OK.

figura11.jpg

figura12.jpg

Na janela que é apresentada surge o alias com o nome Standard1, altere este valor para Senha.

figura13.jpg

Na aba Definition, clique na linha referente ao Path e em seguida no botão contendo três reticências. Com isto definiremos onde esta armazenada a tabela que será vinculada ao alias.

figura14.jpg

Na janela que surge, vá até o diretório onde salvou a tabela e a selecione-o;

Agora clique na botão com a seta, azul na barra de ferramentas, ou pressione CTRL + A para salvar as configurações.

O alias está pronto! Já temos todas as ferramentas necessárias para dar início à montagem do formulário de Login.

Criando o Formulário de Login

Primeiro inicie o Delphi e em seguida uma nova aplicação. Insira no formulário um Label, um MaskEdit e um Button. Altere as propriedades destes componentes de forma a ficarem com a seguinte aparência:

figura15.jpg

Na propriedade PasswordChar do MaskEdit, apague todo o seu conteúdo e insira um asterisco (*). Desta forma quando o usuário digitar a senha, o conteúdo da MaskEdit será ocultado. Lembre-se de apagar o conteúdo da propriedade Text.

Obs.: A propriedade Name dos componentes não foi alterada neste exemplo, se alterá-la não se esquece de mudar o nome no código que será apresentado mais adiante.

Acesse o arquivo de projeto da aplicação pelo menu Project > View Source.

figura16.jpg

Inclua a unit dbTables na cláusula Uses do mesmo. Depois de Application.CreateForm(TForm1, Form1); e antes de Application.Run; insira o seguinte código:

Session.AddPassword(‘USER’);

Essa linha de código dá acesso irrestrito à tabela.

Agora vá para a unidade de código associada ao formulário de login e da mesma forma inclua a unit dbTables à clausula Uses. Declare o seguinte objeto na seção var:

TabelaSenha: TTable;

Inclua as seguintes linhas de código ao evento onShow do formulário de login:

TabelaSenha := TTable.Creat(self);

TabelaSenha.DatabaseName := Senha’;

TabelaSenha.TableName := Senha.db’;

TabelaSenha.Open;

Analisando o código: A primeira linha cria (em memória) a tabela que será usada por nossa aplicação. Na segunda, definimos qual será o banco de dados usado, para isto inserimos entre as aspas simples (ou apóstrofes) o nome do alias criado por nós no inicio do artigo. A terceira linha define qual será a tabela pertencente ao alias que será utilizada e, a ultima linha abre a tabela.

Crie outro formulário, como se fosse o seu menu principal. O formulário de login dará acesso a ele. De um duplo clique sobre o botão ‘Acessar’ do formulário de login e insira as seguintes linhas de código entre o begin e o end do evento onClick:

if TabelaSenha.FieldByName(‘Senha’).AsString = MaskEdit1.Text then

begin

form2.Show;

form1.Destroy;

end

else

begin

MessageDlg('Senha Incorreta!', mtError, [mbOk], 0);

MaskEdit1.Text := ‘’;

MaskEdit1.SetFocus;

end;

Analisando o código: A primeira linha é responsável em verificar se o conteúdo da MaskEdit é igual ao armazenado na tabela senha. Em caso afirmativo o código entre o primeiro begin e end é executado, abrindo o segundo formulário e destruindo o de login. Em caso negativo o código após o else é executado, onde ele imprime uma mensagem alertando o usuário que a senha está incorreta, depois limpa o conteúdo da MaskEdit e passa o foco para ela.

O ideal agora é criar um formulário para cadastrar novas senhas. A estrutura deste formulário é muito parecida com a do de login. Você deve declarar a unit dbTables a cláusula Uses e da mesma forma, declarar o objeto TabelaSenha na seção var e inserir as mesmas linhas de código ao evento onShow. Não se esqueça de fazer os mesmos procedimentos descritos anteriormente no arquivo de projeto. Após estes passos, por exemplo, insira duas MaskEdit e um botão, como na imagem abaixo:

figura17.jpg

por fim insira o seguinte código no evento onClick do botão ‘Cadastrar’:

if MaskEdit1.Text = MaskEdit2.Text then

begin

TabelaSenha.Append;

TabelaSenha.FieldByName('Senha').AsString := MaskEdit1.Text;

TabelaSenha.Post;

MessageDlg('Senha Cadastrada!', mtInformation, [mbOK], 0);

end

else

begin

MaskEdit1.Text := '';

MaskEdit2.Text := '';

MessageDlg('Senhas Incompatíveis!', mtError, [mbOK], 0);

MaskEdit1.SetFocus;

end;

Bom, chegamos ao fim de mais um artigo! Termino-o deixando a sintaxe de alguns códigos para manipulação de tabelas e uma breve explicação. Espero que tenham gostado e até a próxima.

// usado para inserir um novo registro

TabelaSenha.Append;

// usado para buscar um campo pelo Nome, seja para ler ou gravar dados

TabelaSenha.FieldByName(‘Senha’).AsString

// grava o registro atual

TabelaSenha.Post;

// usado para excluir um registro da tabela

TabelaSenha.Delete;

// cancela as alterações feitas em um determinado registro

TabelaSenha.Cancel;

POR : Guilherme Bernardo (Ibreis)

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.