Autenticação (Login de acesso)

Delphi

17/03/2004

olá amigos

gostaria de saber como devo proceder com autenticação

pois estou fazendo uma aplicação que obrigatóriamente deverá ter uma autenticação
em um banco de dados com usuario e senha

alguem poderia ajudar


fico grato :D

[b:2cf12c1ebe][color=red:2cf12c1ebe]Título editado pelo Moderador (AZ)[/color:2cf12c1ebe][/b:2cf12c1ebe]


[sysop]

[sysop]

Curtidas 0

Respostas

Mmtoor

Mmtoor

17/03/2004

Prezado amigo
Gravar login e password em banco de dados pode não ser tão confiável.
Encripte os dados na gravação e desencripte na leitura de login do usuário em seu form principal.
Para localizar o usuário insira dois TEdits com pesquisa incremental. Quando os dados desencriptados nos TEdits forem iguais aos gravados no banco de dados, que devem ser desencriptados por um TTimer, o sistema libera o acesso.


GOSTEI 0
[sysop]

[sysop]

17/03/2004

o meu problema eh como fazer isso!!!


GOSTEI 0
Chico Gois

Chico Gois

17/03/2004

Beleza!

Que banco de dados vc esta usando?

T+


GOSTEI 0
Linhares

Linhares

17/03/2004

eu tambem nao sei fazer isso, utilizo banco postgresql!
Obrigado


GOSTEI 0
[sysop]

[sysop]

17/03/2004

Beleza! Que banco de dados vc esta usando? T+


é o paradox 7


GOSTEI 0
Wagner

Wagner

17/03/2004

Colega eu faço dessa forma e funciona perfeitamente, claro voce tem modificar para se adaptar ao seu projeto eu utilizo paradox, e a minha tabela consiste em cod. usuario e senha. O form de login consiste em 2 edit´s (usuario e senha) e dois bitbtn(ok e cancel)


private
fechar:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
formlogin: Tformlogin;
implementation
uses u_cadsenha;
{$R *.dfm}
procedure Tformlogin.BitBtn1Click(Sender: TObject);
begin
if not tabelaUsuario.Locate(´senha;login´,vararrayof([editsenha.Text,editusuario.text]),[]) then
begin
Application.MessageBox(´Ops! Usuario e/ou senha não autorizados!´,´Atenção!´,mb_iconStop+mb_ok);
editsenha.clear;
editusuario.SetFocus;
editusuario.SelStart:=0;
exit;
end
else
begin
fechar:=1;
close;
end;
end;
procedure Tformlogin.FormShow(Sender: TObject);

begin
fechar:=0;
editusuario.SetFocus;
end;

procedure Tformlogin.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure Tformlogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if fechar=0 then
application.Terminate;

end;


Manda ver ai, e fala se funcionou


GOSTEI 0
Chico Gois

Chico Gois

17/03/2004

Beleza!

Estou fazendo isso usando o Interbase, acho que é uma questão de adaptar

1- Fiz duas tabelas :

Numa chamada Usuario eu defini, Status, Data de inclusao, Nome, Fantasia, Dpto, Nivel

E outra chamada perfil aonde eu defino o acesso as partes do sistema, tipo pode ou não alterar um registro e por ai vai

depois eu fiz uma tela de login conforme codigo abaixo:
procedure TLogin.Button2Click(Sender: TObject);
begin
   menuPrin.Close;
end;

procedure TLogin.Button1Click(Sender: TObject);
var
strSqlLog: string;
mensagem: string;
begin
   strSqlLog:= ´SELECT * FROM usuario,perfil WHERE usuario.nivel = perfil.id ´;
   strSqlLog:= strSqlLog + ´AND fantasia = ´ + #39 + (valorNome.Text) + 39;
   strSqlLog:= strSqlLog + ´AND senha = ´ + 39 + (valorSenha.Text) + 39;
   menuPrin.QueryLogin.Close;
   menuPrin.QueryLogin.SQL.Clear;
   menuPrin.QueryLogin.SQL.Add(strSqlLog);
   menuPrin.QueryLogin.Open;

   if menuPrin.QueryLogin.FieldByName(´status´).AsString = ´N´ then
   begin
   mensagem:= ´Você esta cadastrado no sistema mas não ´ + #13
   + ´possui autorização para usa-lo neste momento. ´ + 13 + 13
   + ´Consulte o administrador do sistema.´;
   Application.MessageBox(PChar(mensagem), ´Login não autorizado´,
   MB_OK+MB_ICONERROR);
   menuPrin.Close;
   end
   else

   if (menuPrin.QueryLogin.RecordCount) = 1 then
   begin
   menuPrin.StatusBar1.Panels[2].Text:= ´ ´ + ´Usuário: ´ + Login.ValorNome.Text + ´ - ´ + menuPrin.QueryLogin.FieldByName(´dpto´).AsString;

   menuPrin.Logoff.Caption:= ´Logoff de: ´ +
    menuPrin.QueryLogin.FieldByName(´fantasia´).AsString;
    menuPrin.Logoff.Hint:= ´Logoff de: ´ +
    menuPrin.QueryLogin.FieldByName(´fantasia´).AsString;

   Login.Close;
   end;

   if (menuPrin.QueryLogin.RecordCount)= 0 then
   begin
   mensagem:= ´Nome ou senha do usuário invalidos.´ + #13 + 13
   + ´Se você esqueceu sua senha, consulte ´ + 13
   + ´o administrador do sistema.´;
   Application.MessageBox(PChar(mensagem), ´Login não autorizado´, MB_OK+MB_ICONERROR);
   ValorSenha.Text:= ´´;
   ValorSenha.SetFocus;
   end;

end;

procedure TLogin.ValorNomeKeyPress(Sender: TObject; var Key: Char);
begin
   if key = 13 then
   begin
   SelectNext(ActiveControl, True, True);
   key:= 0;
   end;
end;

procedure TLogin.ValorSenhaKeyPress(Sender: TObject; var Key: Char);
begin
   if key = 13 then
   begin
   SelectNext(ActiveControl, True, True);
   key:= 0;
   end;
end;

end.



QQ coisa post ai

T+


GOSTEI 0
[sysop]

[sysop]

17/03/2004

valeu galera vou testar as duas formas e qualquer coisa volto a comunicar


GOSTEI 0
Lorde_morte.

Lorde_morte.

17/03/2004

[quote:e0841fbcdf=´Chico Gois´]Beleza!

Estou fazendo isso usando o Interbase, acho que é uma questão de adaptar

1- Fiz duas tabelas :

Numa chamada Usuario eu defini, Status, Data de inclusao, Nome, Fantasia, Dpto, Nivel

E outra chamada perfil aonde eu defino o acesso as partes do sistema, tipo pode ou não alterar um registro e por ai vai

...[/quote:e0841fbcdf]

Eu nao criei uma tabela minha para guardar os usuarios, eu usei o componente TibSecurityService. Como seria feita a autenticação dos usuarios nesse caso?


GOSTEI 0
Lorde_morte.

Lorde_morte.

17/03/2004

Com o TibSecurity eu ate consigo procurar por uma login do usuario, mas terminada a busca, eu nao consigo pegar a senha para autenticação.

Como autenticar usuarios cadastrados com o TibSecurityService?

Desde ja obrigado!


GOSTEI 0
Lorde_morte.

Lorde_morte.

17/03/2004

up


GOSTEI 0
POSTAR