• 找回密码实现和邮件发送功能


    一、找回密码实现和邮件发送功能

    找回密码分析:

    1. 接收用户输入的用户名邮箱,并且校验邮箱是否和用户名邮箱匹配

    2. 构建相应的内容,发送至用户邮箱中,

    2.1构建什么内容:系统产生一个新的密码,并且将新产生的新密码发送到用户的邮箱中。

    3. 如果需要同时发送多条邮件,需要放在队列中。

    二、邮箱发送信息功能实现:相关代码如下,需要引入:using System.Net.Mail;

           MailMessage mailMsg = new MailMessage();//两个类,别混了,要引入System.Net这个Assembly
                mailMsg.From = new MailAddress("wang_itcast@126.com", "王**");//源邮件地址 ,发件人的地址
                mailMsg.To.Add(new MailAddress("wangchengwei324@126.com", "王**"));//目的邮件地址。可以有多个收件人,收件人的地址
                mailMsg.Subject = "Hello,大家好!";//发送邮件的标题 
                mailMsg.Body = "Tai Xie E le!";//发送邮件的内容 
                //smtp 是传输协议
                SmtpClient client = new SmtpClient("smtp.126.com");//smtp.163.com,smtp.qq.com
                client.Credentials = new NetworkCredential("wang_itcast", "wangchengwei");  //用户名和密码
                client.Send(mailMsg);  //发送

    三、实际项目中使用其发送邮件改密码

    1. 首先构建一个前端页面。

    <%@ Page Title="" Language="C#" MasterPageFile="~/Master/MainMaster.Master" AutoEventWireup="true" CodeBehind="FindPwd.aspx.cs" Inherits="BookShop.Web.Member.FindPwd" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="Header" runat="server">
        <script type="text/javascript">
            $(function () {
                $("#btnFindPwd").click(function () {
                    findPwd();
                });
            });
            function findPwd() {
                var userName = $("#txtName").val();
                var userMail = $("#txtMail").val();
                if (userName != "" && userMail != "") {
                    $.post("/ashx/FindPwd.ashx", { "name": userName, "mail": userMail }, function (data) {
    
                    });
                } else {
                    alert("用户名邮箱不能为空");
                }
            }
        </script>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    
        <table>
            <tr><td>用户名</td><td><input type="text" id="txtName" /></td></tr>
              <tr><td>邮箱</td><td><input type="text" id="txtMail" /></td></tr>
              <tr><td colspan="2"><input type="button" value="找回密码" id="btnFindPwd" /></td></tr>
        </table>
    </asp:Content>

    2. 后端代码是:生成一个8位数的密码,然后更新在数据库中,发送给用户。

    3. 但是该方法更改密码有好几处安全隐患,必须,如果被别人知道你的用户名和密码,别人就会频繁的给你发送邮件,并且系统自动生成的密码不太好记忆,用户肯定会想着自己去更改,这样就会很麻烦,所有建议不使用上方的改密码,而去使用下方的改密码。

    4. 修改后的方法就是,首先当用户输入用户名和邮箱都正确之后,会在userinfo用户表中添加一个生成的Guid值,并且通过邮箱的形式,将修改密码的页面加用户的id的值和Guid的值发送给用户,让用户通过点击该连接进行修改密码的操作。

    思路就是这样。

  • 相关阅读:
    C基础-2 数组指针测试
    C基础-2 指针数组测试
    cesium + mapbox 的三种方式
    Fiddler 拦截 https 请求
    Fiddler 拦截请求修改数据
    开窗函数 SUM() OVER()
    ASP.NET中GridView和Repeater重复数据如何合并
    SQL Server 索引优化 ——索引缺失
    C# LINQ和Lambda表达式详解
    html+js实现登录的账号密码保存
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10940698.html
Copyright © 2020-2023  润新知