JavaLL Posted January 18, 2007 at 05:18 PM Report Share #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 Link to comment Share on other sites More sharing options...
Triton Posted January 18, 2007 at 08:10 PM Report Share #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 Link to comment Share on other sites More sharing options...
Tiago Salgado Posted January 18, 2007 at 08:56 PM Report Share #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 Link to comment Share on other sites More sharing options...
JavaLL Posted January 19, 2007 at 12:12 PM Author Report Share #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 Link to comment Share on other sites More sharing options...
JavaLL Posted January 19, 2007 at 12:17 PM Author Report Share #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. 😉 Link to comment Share on other sites More sharing options...
Tiago Salgado Posted January 19, 2007 at 07:24 PM Report Share #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). Link to comment Share on other sites More sharing options...
JavaLL Posted January 19, 2007 at 09:27 PM Author Report Share #77342 Posted January 19, 2007 at 09:27 PM ok dude, vou exprimentar e depois digo-te alguma coisa.. thks Link to comment Share on other sites More sharing options...
Tiago Salgado Posted January 20, 2007 at 01:35 AM Report Share #77388 Posted January 20, 2007 at 01:35 AM Qualquer coisa já sabes onde me encontrar. 😄 Link to comment Share on other sites More sharing options...
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