Jump to content

Recuperação das Passwords de forma automática


JavaLL

Recommended Posts

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

Link to comment
Share on other sites

Boas sua parreca desmiolada  😁

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 😄

Espero ter ajudado

Cumps

Link to comment
Share on other 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. 😄

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

Link to comment
Share on other 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  😄 ( 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: 

😉

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.