主要部分就是将密码发送到邮件里页面呢 就是加一个邮件地址的文本框,外加发送按钮,因为邮箱本身就是一种验证,如果用户输入了自己可以正常登陆的邮箱,才会看到密码点击发送,去库中根据用户名找到密码,作为邮件内容发送然后就是发送邮件System.Net.Mail 发送邮件

解决方案 »

  1.   

    = =找回密码说白了就是服务器发送一个地址到你的邮箱
    这个邮箱地址的参数安全起键进行加密然后给你两个框子填写新密码
    然后提交根据地址参数获取用户ID和你输入的新密码 也就一个UPDATED 没什么代码。
      

  2.   

    public void sendChangePwdLink(int userid){
      //在这里面生成一个随机数。
      string rndcode="JKHkj7IOj";  //随机数你自己去生成,规则自己定
      string sql = "update [users] set rndFindPassCode='"+ rndcode +"'"; //把随机数写入数据库
      SendEmail(string email,string content)  //这个发邮件的方法自己去实现。
    }
    //用户点进来时
    public void userChangePwd(){
       string username= Request["XXX"];
       string code = Request["XXX"];  //接收用户名和验证码  sql = "select  * from [users] where username='"+ username +"' and rndFildPassCode='"+ code +"'";
      //执行这条SQL,查找用户名为传入的用户名并且验证码等于你发邮件时生成的那个。如果两个都符合,能找到记录,则出现密码输入框,让用户输入新密码。否则就做错误处理。具体代码我就不写了。
    }
      

  3.   

    用户表 id  email  name   pwd
    用户登录时忘记密码,找回密码时给个输入框,输入email,然后点击发送按钮,调用发邮件方法,方法如下
            
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="mFrom">发件人地址,你自己的邮箱,比如[email protected]</param>
            /// <param name="mTo">收件人地址</param>
            /// <param name="mBody">邮件正文</param>
            /// <param name="mSubiect">邮件标题</param>
            /// <returns></returns>
            public static bool SendMail(string mFrom, string mTo, string mBody, string mSubiect)
            {
                MailMessage Mail = new MailMessage();
                Mail.From = new MailAddress(mFrom);
                Mail.To.Add(mTo);
                Mail.IsBodyHtml = true;
                Mail.BodyEncoding = System.Text.Encoding.Default;
                Mail.Subject = mSubiect;
                Mail.Body = mBody;
                SmtpClient Client = new SmtpClient();
                try
                {
                    Client.Host = "smtp.163.com";
                    Client.Credentials = new System.Net.NetworkCredential("你自己的邮箱用户名,不包括@?,比如test", "你自己邮箱的密码");
                    Client.Send(Mail);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
    你可以到用户表中查出email对应的密码,然后把密码写在mBody中。
    示例mBody = "尊敬的用户,您的密码是000,感谢您的支持。";
      

  4.   

    另外还有一种情况是邮件里面不直接发送密码,只发送一个连接,用户在邮箱中点击这个连接,到你网站的一个页面,在这个页面呈现用户密码或者是让用户修改密码。给邮箱发送的连接,一般有校验,DES加密(校验码一般是 Email/用户名/用户id + 发送邮件的时间 + 约定密钥),在接受页面获得校验码,然后验证过期时间,是否有权限等。
      

  5.   

    public static void EmailToGetNewPwd(string emailAdress,string userName,out string md5NewPwd)
            {
                string newPwd = NewWord();                     //新产生的随机密码
                md5NewPwd = CommonHelper.Md5Encrypt(newPwd);   //MD5散列算法后的密码            //发送邮件
                MailMessage mailmsg = new MailMessage();
                mailmsg.From = new MailAddress("[email protected]", "牛b");  //源邮箱
                mailmsg.To.Add(emailAdress); //目标邮箱
                mailmsg.Subject = "您重置所获得的新密码";
                mailmsg.IsBodyHtml = true;            StringBuilder sbBody = new StringBuilder();
                sbBody.Append("亲爱的用户,").Append(userName).Append("您的新密码如下:<br/>").Append(newPwd+"<br/>").Append("请你保存好新密码,或及时修改!<br/>");
                mailmsg.Body = sbBody.ToString();            SmtpClient client = new SmtpClient("127.0.0.1");
                
                client.Credentials = new NetworkCredential("[email protected]", "admin");
                client.Send(mailmsg);
     
            }
      

  6.   

    1.填写用户账号。
    2.验证账户对应的邮箱,看在数据库中是否存在。
    3.把用户id和旧密码作为参数生成链接,发用户注册时邮箱。
    4.用户通过邮箱链接,打开修改密码页面,验证用户id和传递过来的密码是否存在,(如果已经修改,那本链接就作废),如存在,则提示输入新密码、确认密码