JavaLL Posted January 18, 2007 at 05:18 PM Report #77092 Posted January 18, 2007 at 05:18 PM 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.. usando o componente Passwordrecovery consigo recuperar mas a base de dados não pode estar no formato .mdb (Access). Desde ja obrigado! cumpz
Triton Posted January 18, 2007 at 08:10 PM Report #77142 Posted January 18, 2007 at 08:10 PM 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. 😄 <3 life
Tiago Salgado Posted January 18, 2007 at 08:56 PM Report #77154 Posted January 18, 2007 at 08:56 PM 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
JavaLL Posted January 19, 2007 at 12:12 PM Author Report #77248 Posted January 19, 2007 at 12:12 PM 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
JavaLL Posted January 19, 2007 at 12:17 PM Author Report #77250 Posted January 19, 2007 at 12:17 PM 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. 😉
Tiago Salgado Posted January 19, 2007 at 07:24 PM Report #77319 Posted January 19, 2007 at 07:24 PM No código que te dei faz isso. Gera a password e poe na BD (já encriptada).
JavaLL Posted January 19, 2007 at 09:27 PM Author Report #77342 Posted January 19, 2007 at 09:27 PM ok dude, vou exprimentar e depois digo-te alguma coisa.. thks
Tiago Salgado Posted January 20, 2007 at 01:35 AM Report #77388 Posted January 20, 2007 at 01:35 AM Qualquer coisa já sabes onde me encontrar. 😄
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now