2017-04-11 78 views
-2
protected void btnPass_Click(object sender, EventArgs e) 
{ 
//Create Connection String And SQL Statement 
string strConnection = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
string strSelect = "SELECT UserName,Password FROM Users WHERE Email = @Email"; 


SqlConnection connection = new SqlConnection(strConnection); 
SqlCommand command = new SqlCommand(); 
command.Connection = connection; 
command.CommandType = CommandType.Text; 
command.CommandText = strSelect; 


SqlParameter email = new SqlParameter("@Email", SqlDbType.VarChar, 50); 
email.Value = txtEmail.Text.Trim().ToString(); 
command.Parameters.Add(email); 


//Create Dataset to store results and DataAdapter to fill Dataset 
DataSet dsPwd = new DataSet(); 
SqlDataAdapter dAdapter = new SqlDataAdapter(command); 
connection.Open(); 
dAdapter.Fill(dsPwd); 
connection.Close(); 
if(dsPwd.Tables[0].Rows.Count > 0) 
    { 
MailMessage loginInfo = new MailMessage(); 
loginInfo.To.Add(txtEmail.Text.ToString()); 
loginInfo.From = new MailAddress("[email protected]"); 
loginInfo.Subject = "Forgot Password Information"; 


loginInfo.Body = "Username: " + dsPwd.Tables[0].Rows[0]["UserName"] + " 

Password: " + dsPwd.Tables[0].Rows[0]["Password"] + " 

"; 
loginInfo.IsBodyHtml = true; 
SmtpClient smtp = new SmtpClient(); 
smtp.Host = "smtp.gmail.com"; 
smtp.Port = 587; 
smtp.EnableSsl = true; 
smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "YourGmailPassword"); 
smtp.Send(loginInfo); 
lblMessage.Text = "Password is sent to you email id,you can now Login"; 
} 
else 
{ 
lblMessage.Text = "Email Address Not Registered"; 
} 


}: 
+4

您的帖子無法閱讀。但是對於存儲散列的問題,您不提供密碼恢復。您提供安全的方法將密碼更改爲新密碼。 – Logman

+0

請勿使用行號在其中發佈代碼 – MickyD

回答

2

散列點的一部分是它通常很難反轉。 讓別人看到一個被遺忘的密碼是一個壞主意,相反你應該考慮創建一個頁面,用戶可以在其中重新設置密碼。或者,您可以將密碼設置爲已知值,然後向他們發送新密碼,並在登錄後更改密碼。