经过一系列的练习,实现了会员注册《MVC会员注册http://www.cnblogs.com/insus/p/3439599.html
登录《MVC应用程序实现会员登录功能http://www.cnblogs.com/insus/p/3466512.html
以及注销《MVC会员注销功能Cookie的应用http://www.cnblogs.com/insus/p/3471147.html等功能。

还差一些什么呢?会员忘记密码时,能够请求密码或是重置自己的密码。现在Insus.NET就实现这个功能。本次演示中,Insus.NET的实现思路是会员填写注册的信息,如帐号和邮箱等,然后给邮箱发送一个超链接,用户打开链接,出现重置密码的网页。此时会员就可以在24小时有效的情况之下重置密码。

开始吧,在数据库创建一张表[dbo].[ChangeRequestPassword],用户请求密码时,存储会员每一次请求临时的token信息:

token字段,是唯一字段,将用来发送给会员。Account和Email是用来记录会员请求的帐号与邮箱。而最后一个字段Expire是一个记录过期的字段。到时程序会根据此字段的时间来链接判断是否失效。

接下来,创建一张邮件参数表[dbo].[EmailParameter]:

一个专业的站点,也许不止使用一个邮箱来发送服务邮件,电子报,会员服务等,应该把主发送的邮件列于此。

最后再创建一张表,是用来存储所有订阅等待的将要发送邮箱地址。

接下来,创建一个存储过程,添加邮件参数:

下面Insus.NET以新浪邮箱为例,登录之后,可以在选项中看到如下信息:

添加一个发送的邮箱参数,Insus.NET使用新浪的邮箱:

在此Insus.NET建议网友不要尝试使用上面的帐号与密码登录上面所列的邮箱,密码肯定不是所显示的啦。

数据库的设计还没有完成,还有几个存储过程要写:

上面的会员请求密码存储过程,首先判断会员在请求密码时所输入的帐号与邮箱是否正确。
接着产生一个全新的token码。当然这个token码,你也可以按照你的处理方式来产生,唯一性即可。
#36行代码,是选择在邮件参数中,使用哪一个参考,即是说使用哪一个邮箱来发送。
#38与#39行代码的网址,是一个真实正确的网址,肯定的你需要更改你MVC应用程序中的网址。
最后是把信息插入至订阅邮件列表的表中。等待程序来处理。

现在可以转到MVC应用程序,打开Entities目录下的MemberEntity.cs,添加一个方法:

去控制器打开MemberController.cs添加两个Result:

创建RequestPassword视图,参考下图的目录与路径:

代码:

到这里,这部分算完成了,会员可以直接访问此页或是我们可以在登录介面中,放一个链接,可以导向此页:

最后来看看实时操作演示:

在演示中已经达到我们最初的想法,但是邮件还是没有发送出去,只是存在MailingList列表中。下一篇Insus.NET将会实现MVC应用程序自动执行也发送邮件。

MVC应用程序请求密码的功能(一)的更多相关文章

  1. MVC应用程序请求密码的功能(二)

    MVC应用程序请求密码的功能(二) 在完成<MVC应用程序请求密码的功能(一)>http://www.cnblogs.com/insus/p/3471534.html之后,如果你照着做,所 ...

  2. MVC应用程序请求密码的功能1

    MVC应用程序请求密码的功能(一) 经过一系列的练习,实现了会员注册<MVC会员注册>http://www.cnblogs.com/insus/p/3439599.html,登录<M ...

  3. 创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段

    创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段 添加查询功能 本文将实现通过Name查询用户信息. 首先更新GetAll方法以启用查询: public async ...

  4. 详解ASP.NET MVC应用程序请求生命周期

    ------转载当一个ASP.NET MVC应用程序提出请求,为了响应请求,包含一些请求执行流程步骤! 在ASP.NET MVC应用程序Http request 和Http response 过程中, ...

  5. MVC应用程序实现会员登录功能

    实现之前,我们已经把验证成功的信息存在cookie里<MVC登录前准备写好cookie>http://www.cnblogs.com/insus/p/3464105.html.现在就可以实 ...

  6. asp.net MVC 应用程序的生命周期

    下面这篇文章总结了 asp.net MVC 框架程序的生命周期.觉得写得不错,故转载一下. 转载自:http://www.cnblogs.com/yplong/p/5582576.html       ...

  7. asp.net MVC 应用程序的生命周期(上)

    首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序一个请求的 ...

  8. 为ASP.NET MVC应用程序使用高级功能

    为ASP.NET MVC应用程序使用高级功能 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...

  9. Spring MVC 异步处理请求,提高程序性能

    原文:http://blog.csdn.net/he90227/article/details/52262163 什么是异步模式 如何在Spring MVC中使用异步提高性能? 一个普通 Servle ...

随机推荐

  1. OS基础:动态链接库(二)

    1.vc6.0新建工程MFC AppWizard[dll]工程 命名LptMfcDll1 2.在lptMfcDll1.h添加函数名声明 添加的代码: //lptAddBegin void lptMfc ...

  2. 使用PerfView监测.NET程序性能(四):折叠,过滤和时间范围选择

    在上一篇文章中,我们使用了Perfview的分组功能.分组功能旨在对某些函数按照某个格式进行分组,以减少视图中的各种无关函数的数量.但仅有分组还不够,有时我们想将一些函数调用信息按某些条件过滤掉,例如 ...

  3. ASP .Net C# ---CSV导入导出

    CSV和Excel大致相同  复制下来 数据传到方法里面就可以了 /// <summary> /// DataTable数据写入CSV文件 /// </summary> /// ...

  4. POI中文API文档

    一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二. HSSF概况 HSSF 是 ...

  5. Python 读取文件中unicode编码转成中文显示问题

    Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...

  6. Mac下通过 brew 安装 Apache 和 PHP

    Mac 自带的是php5.6 ,这里讲一下如果要升级到php7.1需要做的. 1.安装brew https://brew.sh/(官网有提供安装命令 建议使用) ruby -e "$(cur ...

  7. day 72 crm(9) 客户关系系统,整体实现,以及自定制路由内容,客户关系梳理

    前情提要: crm(9)  ,利用stark 组件和,rbac组键的使用,   明确观点: 一:客户关系需求明确 1:客户关系系统,主要是,本业务逻辑主要是 销售就客户关系的业务逻辑, 二: 创建ap ...

  8. python使用selector模块编写FTP

    server import os import socket import time import selectors BASE_DIR = os.path.dirname(os.path.abspa ...

  9. [EXP]WordPress Core 5.0 - Remote Code Execution

    var wpnonce = ''; var ajaxnonce = ''; var wp_attached_file = ''; var imgurl = ''; var postajaxdata = ...

  10. Docker三剑客之常用命令

    一.docker-machine 命令 说明 docker-machine create 创建一个 Docker 主机(常用-d virtualbox) docker-machine ls 查看所有的 ...