下面图老师小编要跟大家分享C#编程 忘记密码功能的实现方法,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!
【 tulaoshi.com - 编程语言 】
本文将给出通过C#编程来实现 忘记密码 功能的方法和代码,大家可以参照本文的思路自己写出这个功能代码……
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)以下是引用片段:
int result  = user.GetBackPassword(LoginName.Text.Trim(), Question.Text.Trim(), 
    Answer.Text.Trim(), Email.Text); 
   if (result == 1) 
   { 
    Message.Text = "您的密码已发送,请到邮箱查收"; 
    //user.ChangePassword( 
   } 
   else 
   { 
    Message.Text = "您的输入信息有误!"; 
   } 
  
public int GetBackPassword(string userName, string question, string answer, string email) 
  { 
   object m_DBNull = Convert.DBNull; 
   //获得新的随机密码 
   string newPassword = MakePassword(6); 
   //定义存储过程参数  
   SqlParameter[] para = { 
           new SqlParameter("@userName", userName), 
           new SqlParameter("@question", question), 
           new SqlParameter("@answer", answer), 
           new SqlParameter("@newPassword", newPassword), 
           new SqlParameter("@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 
   { 
    throw new Exception("邮件无法发送!"); 
   } 
   //获得输出参数的值 
   int result = Convert.ToInt32(para[4].Value); 
   //如果密码保护资料填写正确 
   if (result == 1) 
   { 
    //从Web.config获取发信人地址、邮件标题、邮件用户名和密码以及SmtpServer 
    string sender = System.Configuration.ConfigurationSettings.AppSettings["mainSender"]; 
    string title = System.Configuration.ConfigurationSettings.AppSettings["mailTitle"]; 
    string mailUser =  System.Configuration.ConfigurationSettings.AppSettings["mailUser"]; 
    string mailPwd = System.Configuration.ConfigurationSettings.AppSettings["mailPwd"]; 
    string smtpServer = System.Configuration.ConfigurationSettings.AppSettings["mailSmtpServer"]; 
    //发信 
    try 
    { 
     Mail.CDOsendmail(sender, email, title, "您在eshop的密码已找回,新密码为"+newPassword  
      , mailUser, mailPwd, smtpServer); 
    } 
    catch(Exception ex) 
    { 
     throw new Exception(ex.Message); 
    } 
   } 
   return result; 
  }  
  
//随机生成密码 
  private static string MakePassword(int pwdLength) 
  { 
   //声明要返回的字符串 
   string tmpstr = ""; 
   //密码中包含的字符数组 
   string pwdchars="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
   //数组索引随机数 
   int iRandNum; 
   //随机数生成器 
   Random rnd = new Random(); 
   for(int i=0;ipwdLength;i++) 
   { 
    //Random类的Next方法生成一个指定范围的随机数 
    iRandNum = rnd.Next(pwdchars.Length); 
    //tmpstr随机添加一个字符 
    tmpstr += pwdchars[iRandNum]; 
   } 
   return tmpstr; 
  } 
  
ALTER  PROCEDURE GetBackPwd 
@question nvarchar(50), 
@answer nvarchar(50), 
@userName nvarchar(50), 
@newPassword nvarchar(50), 
@result int output 
AS 
 if exists (SELECT * FROM USERINFO WHERE USERNAME=@USERNAME AND QUESTION=@QUESTION 
    AND ANSWER=@ANSWER) 
 BEGIN 
  SET @RESULT = 1 
  UPDATE USERINFO 
  SET USERPWD = @newPassword 
  WHERE userName = @userName 
 END 
 ELSE 
 BEGIN 
  SET @RESULT = -1 
 END 
GO 
SET QUOTED_IDENTIFIER OFF  
GO 
SET ANSI_NULLS ON  
GO 
 add key="mailUser" value="" / 
    add key="mailPwd" value="" / 
    add key="mailSmtpServer" value="" / 
    add key="mailSender" value="" / 
 add key="mailTitle" value="" / 
来源:http://www.tulaoshi.com/n/20160219/1605204.html
看过《C#编程 忘记密码功能的实现方法》的人还看了以下文章 更多>>