当前位置: 首页 > 编程语言 > C#

C#LearningTutorial-ValidatingandChangingaUser'sPasswordSharing

时间:2023-04-10 19:05:47 C#

ValidatingandChangingaUser'sPassword我有一个简单的C#表单,用作登录,但也有一个表单来更改用户密码。当您单击“更改密码”时,表单会加载一个文本框,其中包含当前密码、新密码和确认新密码,以及一个保存按钮。我已将用户名存储在标签中,以便我可以检查当前密码在数据库中是否有效。我将这些存储在我在MicrosoftSQLServer2008中创建的表中。到目前为止的代码如下。SqlConnectionconnect=newSqlConnection(str);connect.Open();stringusername=label_username.Text;字符串密码=textBox_Current.Text;stringnewPassword=textBox_New.Text;stringconfirmPassword=textBox_Verify.Text;stringsqlquery="UPDATE[Member]SETPassword=@newpasswhereUsername=@username";SqlCommandcmd=newSqlCommand(sqlquery,connect);cmd.Parameters.AddWithValue("@newpass",textBox_Verify.Text);cmd.Parameters.AddWithValue("@username",label_username.Text);cmd.Parameters.AddWithValue("@password",textBox_Current.Text);cmd.Connection=连接;cmd.ExecuteNonQuery();sqlDataReader读取器=null;读者=cmd.ExecuteReader();while(reader.Read()){if((textBox_New.Text==reader["newPassword"].ToString())&(textBox_Verify.Text==(reader["confirmPassword"].ToString()))){}}MessageBox.Show("密码修改成功!");这个。关闭();执行上面的代码时,密码发生了变化,但我想:我该怎么做?您真的不应该以纯文本形式存储这些密码。您应该散列密码并存储散列。然后,如果要检查密码是否正确,请对用户输入的密码进行哈希处理,并将其与为用户存储的哈希值进行比较。但是,听起来您需要帮助才能从当前用户的数据库中获取值。把这样的东西放在那里,它应该为你做。请注意,就像我上面所说的,这应该是检索到的密码的哈希值,而不是明文形式的实际密码。stringsqlquery="SELECTPasswordFROM[Member]whereUsername=@username";SqlCommandcmd=newSqlCommand(sqlquery,connect);cmd.Parameters.AddWithValue("@username",label_username.Text);cmd.Connection=连接;字符串当前密码=(字符串)cmd.ExecuteScalar();if(currentPassword==textBox_Current.Text){//密码正确,立即更改。}else{//WOWEASYBUDDY,NOTSOFAST}首先,你应该在应用程序中使用密码散列,所以数据库的密码字段应该包含散列值。假设这样,为了实现你的目标,考虑你的字符串用户名->散列它->写一个查询来检查是否有散列和存储在数据库中的用户密码的散列是相同的在你的代码中考虑字符串密码和字符串newPassword->Hashboth->检查哈希值是否相同这些任务:1->3->2希望对你有所帮助...以上就是C#学习教程的全部内容:身份验证和更改用户密码,如果对大家有用,需要详细了解的C#学习教程,希望大家多多关注SqlConnectioncon=new`SqlConnection`(constring);{如果(con.State!=ConnectionState.Open)con.Open();}stringstr="select*fromtbl_MemberLoginwherePassword='"+txtoldpwd.Text+"'";DataTableDT=newDataTable();DT=objdut.GetDataTable(str);if(DT.Rows.Count==0){lblmsg.Text="当前密码无效";lblmsg.ForeColor=System.Drawing.Color.Red;}else{SqlCommandcmd=newSqlCommand();cmd.CommandText="updatetbl_MemberLoginsetPassword='"+txtnewpwd.Text+"'其中UserName='"+Session["UserName"].ToString()+"'";cmd.ExecuteNonQuery();lblmsg.Text="密码更改成功";lblmsg.ForeColor=System.Drawing.Color.Green;}}本文收集自网络,不代表立场,如涉及侵权,请点右联系管理员删除,如需转载请注明出处: