VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#编程 忘记密码功能的实现方法

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  本文将给出通过C#编程来实现 忘记密码 功能的方法和代码,大家可以参照本文的思路自己写出这个功能代码……

以下是引用片段:
  intresult =user.GetBackPassword(LoginName.Text.Trim(),Question.Text.Trim(),
  Answer.Text.Trim(),Email.Text);
  if(result==1)
  {
  Message.Text="您的密码已发送,请到邮箱查收";
  //user.ChangePassword(
  }
  else
  {
  Message.Text="您的输入信息有误!";
  }
  publicintGetBackPassword(stringuserName,stringquestion,stringanswer,stringemail)
  {
  objectm_DBNull=Convert.DBNull;
  //获得新的随机密码
  stringnewPassword=MakePassword(6);
  //定义存储过程参数 
  SqlParameter[]para={
  newSqlParameter("@userName",userName),
  newSqlParameter("@question",question),
  newSqlParameter("@answer",answer),
  newSqlParameter("@newPassword",newPassword),
  newSqlParameter("@result",SqlDbType.Int,8,ParameterDirection.Output,
  true,0,0,"",DataRowVersion.Default,m_DBNull)
  };
  //执行存储过程
  try
  {
  DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING,CommandType.StoredProcedure,
  "GetBackPwd",para);
  }
  catch
  {
  thrownewException("邮件无法发送!");
  }
  //获得输出参数的值
  intresult=Convert.ToInt32(para[4].Value);
  //如果密码保护资料填写正确
  if(result==1)
  {
  //从Web.config获取发信人地址、邮件标题、邮件用户名和密码以及SmtpServer
  stringsender=System.Configuration.ConfigurationSettings.AppSettings["mainSender"];
  stringtitle=System.Configuration.ConfigurationSettings.AppSettings["mailTitle"];
  stringmailUser= System.Configuration.ConfigurationSettings.AppSettings["mailUser"];
  stringmailPwd=System.Configuration.ConfigurationSettings.AppSettings["mailPwd"];
  stringsmtpServer=System.Configuration.ConfigurationSettings.AppSettings["mailSmtpServer"];
  //发信
  try
  {
  Mail.CDOsendmail(sender,email,title,"您在eshop的密码已找回,新密码为"+newPassword 
  ,mailUser,mailPwd,smtpServer);
  }
  catch(Exceptionex)
  {
  thrownewException(ex.Message);
  }
  }
  returnresult;
  } 
  //随机生成密码
  privatestaticstringMakePassword(intpwdLength)
  {
  //声明要返回的字符串
  stringtmpstr="";
  //密码中包含的字符数组
  stringpwdchars="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  //数组索引随机数
  intiRandNum;
  //随机数生成器
  Randomrnd=newRandom();
  for(inti=0;i<pwdLength;i++)
  {
  //Random类的Next方法生成一个指定范围的随机数
  iRandNum=rnd.Next(pwdchars.Length);
  //tmpstr随机添加一个字符
  tmpstr+=pwdchars[iRandNum];
  }
  returntmpstr;
  }
  ALTER PROCEDUREGetBackPwd
  @questionnvarchar(50),
  @answernvarchar(50),
  @userNamenvarchar(50),
  @newPasswordnvarchar(50),
  @resultintoutput
  AS
  ifexists(SELECT*FROMUSERINFOWHEREUSERNAME=@USERNAMEANDQUESTION=@QUESTION
  ANDANSWER=@ANSWER)
  BEGIN
  SET@RESULT=1
  UPDATEUSERINFO
  SETUSERPWD=@newPassword
  WHEREuserName=@userName
  END
  ELSE
  BEGIN
  SET@RESULT=-1
  END
  GO
  SETQUOTED_IDENTIFIEROFF 
  GO
  SETANSI_NULLSON 
  GO
  <addkey="mailUser"value=""/>
  <addkey="mailPwd"value=""/>
  <addkey="mailSmtpServer"value=""/>
  <addkey="mailSender"value=""/>
  <addkey="mailTitle"value=""/>



相关教程