MVC与单元测试实践之健身网站(五)-系统信息、前台入口
Fit项目停滞了一段时间,现在继续吧。上一篇完成了动作文本和配图的添加、编辑等内容。接下来要完成的是后台的最后一个模块:系统信息;以及前台的入口:关于注册、登录、修改密码等。
一 系统信息
a) 用户信息
用户信息界面可以查看前台用户的注册、使用情况。
b) 操作记录
对后台管理员进行的操作做了记录,然后可以在该界面查看。
记录的是对各个菜单的增删改查操作,在权限管理AuthorizaFilter中判断权限的同时记录操作内容。所以记录的内容便直接使用权限的名称了。
二 前台登录
a) 注册
注册需要提供的信息有用户名和邮箱,后续使用邮箱作为登录账号,并会通过邮件来进行验证操作(没有短信验证)。这个表单被提交时,会首先判断邮件是否已经被注册,注册成功后,还需要激活,点击注册邮箱收到的激活链接,会根据ID和激活码来尝试激活。
localhost,哄着自己玩哈哈。但激活域名保存在数据库,以后可以方便地修改。
这块还遇到个关于AutoFac的奇怪问题,IUserService本来用得好好地,但添加了几个方法后突然无法解析了,找了半天原因未果后,为UserController单独配置了一个解析规则,然后就好了,之后把单独的规则去掉,IUserService又能正常解析了,不知道这是什么原因。
b) 忘记密码
忘记密码时首先输入邮箱,验证邮箱是否注册过,如果时则发送一份包含验证码的确认邮件。
邮件验证通过后,可以重置密码。这里还是要注意保证每个步骤之间的衔接,尤其要防止用户跳过验证直接访问重置密码界面。
这儿还体会到一个关于return View()与return Redirect()的区别,return View()返回的仍然是当前Action的视图,没有重定向,浏览器地址栏显示的仍然是当前的Action
另外还有关于TempData的使用,TempData只能在第一次请求中读取,然后在一次请求中可以多次使用。
c) 登录
登录的实现与后台的登录一致,根据Email和密码检查,校验方法的返回值类型为long?,如果登录成功,则返回对应的ID,否则返回空。
这样登录、注册、修改密码的闭环就形成了。