当前位置: 代码迷 >> ASP.NET >> ASP.NET JS 找回用户密码现实思路及源码
  详细解决方案

ASP.NET JS 找回用户密码现实思路及源码

热度:4083   发布时间:2013-02-25 00:00:00.0
求一个ASP.NET JS 找回用户密码现实思路及源码。
求一个ASP.NET JS 找回用户密码现实思路及源码。 完全没有了思路,特别是发送邮件没做过。望知道的朋友给点指导谢谢!
★★★★★★★★★★★★★★★★★★★★★★★★★不胜感激★★★★★★★★★★★★★★★★★★★★

------解决方案--------------------------------------------------------
发送邮件,这个不用说了
①系统自动生成一个随机密码到发用到用户邮箱!,如果密码保存的是明文,例如csdn,可以直接把密码发到用户邮箱
②发送一个连接地址到用户注册邮箱,用户登录邮箱点击地址,地址的参数可以包括用户ID,
并支持加、解密的,用户打开这个地址,后台解密这个ID
让用户重新输入地址(等同于修改密码)
欢迎补充哈哈
------解决方案--------------------------------------------------------
生成一个随机的密码放到用户那边,然后邮件给用户他的最新的密码(邮件的地址是用户注册的时候提供的),然后让用户用这个密码打登录。
------解决方案--------------------------------------------------------
加密的办法比较多 比较流行的就是md5 md5+加盐,微软自带的也有很多加密 比如sha256
Demo
C# code
    /// <summary>        /// sha256加密函数        /// </summary>        /// <param name="ss">需要加密的字符串</param>        /// <returns></returns>        public string getsha256(string str)        {            SHA256 sha = new System.Security.Cryptography.SHA256Managed();            byte[] shaByte;            shaByte = sha.ComputeHash(Encoding.Default.GetBytes(str));            sha.Clear();            return Convert.ToBase64String(shaByte);        }
------解决方案--------------------------------------------------------
探讨
发送邮件,这个不用说了
①系统自动生成一个随机密码到发用到用户邮箱!,如果密码保存的是明文,[size=24px]例如csdn[/size],可以直接把密码发到用户邮箱

------解决方案--------------------------------------------------------
探讨

引用:
发送邮件,这个不用说了
①系统自动生成一个随机密码到发用到用户邮箱!,如果密码保存的是明文,例如csdn,可以直接把密码发到用户邮箱


兄弟小心CSDN封杀你呀

------解决方案--------------------------------------------------------
2个技术点:
1.发邮件
2.加密
------解决方案--------------------------------------------------------
C# code
/// <summary>    /// 发送邮件的功能    /// 引用方式:    /// </summary>    public class emailHelp    {        /// <summary>        /// 发送邮件(1-5为发件人的信息;6-10为收件人信息)        /// </summary>        /// <param name="SendID">发件人邮箱账号</param>        /// <param name="SendPass">发件人邮箱密码</param>        /// <param name="SendName">发件人名称</param>        /// <param name="host">Smtp服务器</param>        /// <param name="port">smtp端口</param>        /// <param name="ReceiveID">接收人邮箱账号</param>        /// <param name="ReceiveName">接收人姓名</param>        /// <param name="Title">邮件标题</param>        /// <param name="Content">邮件正文</param>        /// <param name="fj">邮件附件</param>        public static void SendEmail(string SendID, string SendPass, string SendName, string host, int port, string ReceiveID, string ReceiveName, string Title, string Content, string fj)        {            try            {                #region 发送邮件                SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient                smtp.Port = port;                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;                smtp.Host = host; //指定 smtp 服务器地址                smtp.UseDefaultCredentials = false;                smtp.Credentials = new NetworkCredential(SendID.Trim(), SendPass);                MailMessage mm = new MailMessage(); //实例化一个邮件类                mm.Priority = MailPriority.Normal; //邮件的优先级                //发件人邮箱地址                mm.From = new MailAddress(SendID.Trim(), SendName);                mm.To.Add(new MailAddress(ReceiveID, ReceiveName));                //邮件标题和编码格式                mm.Subject = Title;                mm.SubjectEncoding = System.Text.Encoding.UTF8;                //邮件正文是否是HTML格式和编码格式                mm.IsBodyHtml = true;                mm.BodyEncoding = System.Text.Encoding.UTF8;                //邮件正文                mm.Body = Content;                //附件                if (!string.IsNullOrEmpty(fj))                {                    string[] fjArr = fj.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);                    for (int i = 0; i < fjArr.Length; i++)                    {                        mm.Attachments.Add(new Attachment(fjArr[i]));                    }                }                smtp.Send(mm);                #endregion            }            catch (Exception ex)            {                Console.WriteLine("{0}", ex.Message);            }        }    }
  相关解决方案