通过一层层的演习,达成了会员注册《MVC会员注册》,
登录《MVC应用程序实现会员登入作用》,
以及撤废《MVC会员注销功用Cookie的应用》等功能。

在完成《MVC应用程序央浼密码的成效(一)》未来,要是您照着做,全体诉求只会列在MailingList表中,并没发送出去。

自从写了《数据库数据加密与解密》。个中也会有提及Insus.NET将要在MVC应用程序中落实会员注册的机能。
一段时间来,专门的工作无暇,这么些星六还要值班。今后总算忙里偷闲,继续写MVC的先后。
本次要兑现会员注册功用,从最轻易易行的入手。
在数据库中,创设一张会员表[Member]
ca88会员 1

还差那么一点什么样啊?会员忘记密码时,可以呼吁密码或是重新恢复设置本身的密码。今后Insus.NET就达成那几个功用。此番演示中,Insus.NET的兑现思路是会员填写注册的音讯,如帐号和信箱等,然后给邮箱发送二个超链接,用户张开链接,出现复位密码的网页。此时会员就足以在24钟头有效的境况之下复位密码。

Insus.NET未来就继续下去,让那几个职能能尽量完美下去。

瞩目一下密码字段的数据类型,由于要把密码加密之后,它会调换为二进制。有关加密,能够参Gavin章开首的链接。
接下去,完毕登记的仓库储存进度[dbo].[usp_Member_Register]:
ca88会员 2

开始吧,在数据库创设一张表[dbo].[ChangeRequestPassword],用户需要密码时,存款和储蓄会员每二遍呼吁有时的token新闻:
ca88会员 3

 
在上一篇中,有一个存款和储蓄进度:
ca88会员 4

在写存款和储蓄进度时,再要小心一下password的数据类型。用户输入的必然是字符型,而不容许是三个二进制类型。
今后大家得以转至MVC应用程序,创制二个Model:
ca88会员 5

token字段,是唯一字段,将用来发送给会员。Account和Email是用来记录会员诉求的帐号与邮箱。而最终三个字段Expire是一个笔录过期的字段。到时先后会基于此字段的小时来链接判定是或不是失效。

在那一个蕴藏进程#38与#39行代码,是三个超链接,它是实在存在MVC的应用程序中。也正是说,给会员发送邮件时,正是把这几个链接的视图发送至会员的信箱中。因而,大家得创立这一个视图。

创造二个Entity,用来与数据库调换。
ca88会员 6

接下去,成立一张邮件参数表[dbo].[EmailParameter]:
ca88会员 7

创立那几个视图,得先创设多个Model,是为着便于在这一个视图中能突显动态数据。

还要创造一个调整器:
ca88会员 8

三个专门的职业的站点,或然不仅仅应用一个邮箱来发送服务邮件,电子报,会员服务等,应该把主发送的邮件列于此。

ca88会员 9

成立好调控器MemberController.cs之后,在MVC5中,它自动在Views目录下,创制一个Member目录。接下来,当然是创造二个Register.cshtmll视图:
ca88会员 10

最终再成立一张表,是用来累积全部订阅等待的将要发送邮箱地址。
ca88会员 11

去调控器MemberController.cs加多多个视图ActionResult:

尚无样式,未有表明。只是几当中央的文本框。最终还索要造成数据交到成效,写jQuery的ajax:
ca88会员 12

接下去,创立三个存款和储蓄进程,增添邮件参数:
ca88会员 13

ca88会员 14

实时操作演示:
ca88会员 15

上面Insus.NET以微博邮箱为例,登入之后,能够在选用中看到如下音讯:
ca88会员 16

开创视图:
ca88会员 17

下边是数额的笔录:
ca88会员 18

加多贰个发送的邮箱参数,Insus.NET使用新浪的信箱:
ca88会员 19

以此视图就是邮件内容。那一个剧情你一点一滴能够自定制,在此仅供参谋。

在此Insus.NET建议网上亲密的朋友不要品味运用方面包车型地铁帐号与密码登陆上边所列的邮箱,密码鲜明不是所呈现的啊。

当今大家要拍卖MailingList那一个表的数量了,这几个表的数量,正是会员央求密码时,发生的一笔记录。每一笔记录,便是要向会员发送电子邮件。那些能够写五个仓库储存进程,时行分发它们:
ca88会员 20

 数据库的陈设还尚无完结,还会有多少个存储进程要写:
ca88会员 4

先是创立了一个有时表,把持有记录的插入至那几个有的时候表中,然后去删除刚才插入有的时候表同样的笔录。最终是权且表LEFT
JOIN
邮件参照他事他说加以考察表一同回去给MVC应用程序。在应用程序的Entities目录,创设八个实体:
ca88会员 22

上边的会员央浼密码存款和储蓄进程,首先判别会员在伸手密码时所输入的帐号与邮箱是还是不是准确。
随之产生一个斩新的token码。当然这么些token码,你也足以遵守你的管理格局来发出,唯一性就能够。
#36行代码,是选取在邮件参数中,使用哪八个参照,就是说利用哪贰个邮箱来发送。
#38与#39行代码的网站,是二个忠实正确的网站,料定的您需求更动你MVC应用程序中的网站。
终极是把新闻插入至订阅邮件列表的表中。等待程序来拍卖。

接下去的落到实处,也可到头来本篇的主要性,就是MVC应用程序自动实施发送邮件的职能:
去Insus.NET的博客,打开 下载InsusMailUtility 然后参考至MVC的应用程序中:
ca88会员 23

今昔得以转到MVC应用程序,展开Entities目录下的MemberEntity.cs,加多贰个方法:
ca88会员 24

 在MVC应用程序中的App_Start目录,写AutomationTask.cs:
ca88会员 25

去调整器张开MemberController.cs增加四个Result:
ca88会员 26

 

 

那时候,还索要修改Global.asax文件,增多下图高亮行代码。

 创制RequestPassword视图,参照他事他说加以考查下图的目录与路线:
ca88会员 27

ca88会员 28

 

 

 代码:
ca88会员 29

 那样只要应用程序运维,AutomationTask.cs也会自动实践。以后得以演示一下了,先去修改一个测验会员的邮箱,改为真正邮箱:
ca88会员 30

到此地,这一部分算达成了,会员能够一直访问此页或是大家能够在报到介面中,放一个链接,能够导向此页:
ca88会员 31

然后再跟第一篇最后三个演示同样,使用那些会员帐号诉求三遍密码,然后张开邮箱,就可以看到收到的邮件:
ca88会员 32

说起底来探视实时操作演示:

 会员只要点击那超链接,将导向重新恢复设置密码的视图。今后我们须求写重新初始化密码的魔法,先创造叁个存款和储蓄进度:
ca88会员 33

ca88会员 34

先是剖断此token是不是留存大概是还是不是过期,若无,以token找到帐号与邮箱。然后更新密码,最终是剔除ChangeRequestPassword记录。过期的均删除,修改密码成功的也删除。

 

在Entities目录下,创制一个SecurityEntity.cs:
ca88会员 35

在示范中早就实现我们最初的主见,可是邮件依然不曾发送出去,只是存在MailingList列表中。下一篇Insus.NET将会促成MVC应用程序自动推行也发送邮件。

修改调节器MemberController.cs增加二个ActionResult和一个JsonResult:
ca88会员 36

创建ResetPassword视图:
ca88会员 37

演示一下,改动密码:
ca88会员 38

相关文章