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

JavaLL

Recuperação das Passwords de forma automática

8 mensagens neste tópico

Boas  povo..

Antes de mais seja lá qual for a ajuda e bem vinda...

Tenho uma aplicação feita em asp.net C# com base de dados em Access , o que pretendia era fazer a recuperação das passwords de forma automática, tipo o utilizador não sabia a password tinha um formulario em que punha lá o email e era lhe enviado automaticamente um nova password para o e-mail! Ja pesquisei bastante mas muitas das vezes não consegui implementar..  :wallbash:    usando o componente Passwordrecovery consigo recuperar mas a base de dados não pode estar no formato .mdb (Access).

Desde ja obrigado!

cumpz

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que guardas a password na base de dados?

O que podes fazer é criar o teu próprio algoritmo de encriptação para guardar as passwords na base de dados, assim sempre que recebias um pedido para recuperação da password, bastava pedires o valor da base de dados, desencriptar, e enviar ao utilizador. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas sua parreca desmiolada  :cheesygrin:

Bem, considerando que tás a pensar usar o método que te aconselhei no outro dia, deixo-te aqui um rascunho do que tens que fazer +/-:

protected void Button1_Click(object sender, EventArgs e)
    {
        if (RecuperarPassword("Utilizador"))
        {
            Response.Write("Consulte o mail pra ver a nova pass");
        }
        else
        {
            Response.Write("Não foi possivel recuperar a pass");
        }

    }

    protected bool RecuperarPassword(string username)
    {
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\Tiago Salgado\\Desktop\\Database1.mdb;User Id=admin;Password=");
        string strPwdNova= FormsAuthentication.HashPasswordForStoringInConfigFile("password_nova", "SHA1");
        OleDbCommand cmd = new OleDbCommand("UPDATE Users SET Users.Password = '" + strPwdNova + "', IsRecovery = 1 WHERE Users.Username = '" + username + "';", conn);
        //OleDbCommand cmd = new OleDbCommand("SELECT * FROM Users", conn);

        try
        {

            conn.Open();
            cmd.ExecuteNonQuery();

            // password alterada
            // chamas a função pra enviar o email com a nova password
            // envias o que puseste em vez de "password_nova"
            return true;
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
            // erro
            return false;
        }

    }

O campo IsRecovery pode ser usado por exemplo pra quando o utilizador fizer login, verifica que o IsRecovery está a True, e caso esteja, mostre uma mensagem a pedir pra definir uma nova password. Isto é apenas um exemplo :D

Espero ter ajudado

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que guardas a password na base de dados?

O que podes fazer é criar o teu próprio algoritmo de encriptação para guardar as passwords na base de dados, assim sempre que recebias um pedido para recuperação da password, bastava pedires o valor da base de dados, desencriptar, e enviar ao utilizador. :D

na base de dados estou a guardar a password de forma directa tal e qual é inserida... eu sei que é falha de segurança, mas ja estou a tratar disso.

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas dude!

O teu código deu mesmo jeito, pelo menos foi mais um exemplo em C#, os que encontrava era quase tudo Vb  :D ( thks) ... mas acabei por implementar de outra forma.

Eu já estou a conseguir enviar emails e fazer o recovery de forma automática, ou seja o email que utilizador tiver inserido no registo coloca numa textbox e de seguida clica no butão recuperar,  automaticamente é gerada uma nova password através de um algoritmo ( ao mesmo tempo também e realizada uma encriptacao) e enviada para o email! só não consigo ainda e fazer o update da nova password na base de dados.  :wallbash: 

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No código que te dei faz isso. Gera a password e poe na BD (já encriptada).

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