经过一系列的练习,实现了会员注册《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. 常见CEPH操作命令

    1. rbd ls 查看ceph默认资源池rbd里面的镜像2. rbd info xxx.img 查看xxx.img的具体的具体信息3. rbd rm xxx.img 删除xxx.img4. rbd ...

  2. 解决.net+steeltoe服务客户端被服务调用出现400BadRequst错误

    一直尝试用steeltoe的官方示例被调用,一直报400BadRequst错误,换用Java写了一个简单client服务,却能正常被调用. 百思不得其解,用了一晚上填坑,开始觉得是不是IP没绑定,服务 ...

  3. C#生成指定长度随机数

    public static string GetRandomString(int iLength) { ";// 随机字符中也可以为汉字(任何) StringBuilder sb = new ...

  4. 由VC2010与VC2017数据结构差异造成的程序错误

    内容:VC2010和VC2017的标准库中,string(或wstring)的数据结构和操作有所不同,所以在将这两种数据作为参数在两个系统产生的函数中传递时会出现乱码(string和wstring在2 ...

  5. 清理MVC4 Internaet 项目模板清理

    新建项目时选择空的MVC项目 是没有Bundle 引用的非常痛苦,但是如果选择Internet模板 MVC4的模板会帮你添加一堆的JQuery 引用  打开NuGet Console 执行以下指令能帮 ...

  6. [LNOI2014]LCA(树剖+线段树)

    \(\%\%\% Fading\) 此题是他第一道黑题(我的第一道黑题是蒲公英) 一直不敢开,后来发现是差分一下,将询问离线,树剖+线段树维护即可 \(Code\ Below:\) #include ...

  7. Linux下查看文档指令

    1,cat直接查看 cat /etc/profile 2,more,less分页查看 less  /etc/profile more /etc/profile less -N /etc/profile ...

  8. npm 包 升降版本

    今天用vue-awesome-swiper最新版本遇到些问题,需要调整到2.6.7版本.记录以下. 查看vue-awesome-swiper版本 npm list vue-awesome-swiper ...

  9. UICollectionView设置首个cell默认选中

    设置UICollectionView中某个cell的默认选中,刚开始为追求性能,采用同一个cellId去标识UICollectionViewCell,却由于cell的重用会导致之前选中的cell在被重 ...

  10. tkinter的grid布局中合并单元格

    rowspan  合并多行,比如:Label(root,text="table",width=10,height=2,),grid(row=0,column=0,rowspan=2 ...