构建NetCore应用框架之实战篇(五):BitAdminCore框架1.0登录功能设计实现及源码
本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性。
一、设计原则
1、继承前面框架架构思维,设计以可读性作为首要目标。
2、技术架构上共分四层,分html层、controller层、helper层、db层,另外还有ef。
3、所有业务逻辑均在controller层实现,helper只做一些与业务无关的技术封装。
二、模块设计
1、html层:包括login,html,index.html两个页面。
2、controller层:AccountController封装所有与登录权限有关的方法。
3、helper层:LogHelper,SqlHelper,EncryptHelper,SSOClient,VerificationCode,HttpContext等方法。
大致分层架构
三、函数设计
1、重点讲一下SSOClient,封装登录过程相关信息。
2、SSOClient主要函数有IsLogin,Validate,SignIn,SignOut
3、SSOClient主要属性有UserId,User,Department,Roles
把登录过程封装,是为了提升扩展性,把登录抽象为一般较验、用户较验、登录三个环节,可以轻易接入外部登录。
当需要使用第三方登录时,只需要重写Validate即可。
4、AccountController包括以下函数:VerifyCode,Login
5、其它方法为辅助方法,可以查看代码调用链即可。
功能设计太复杂,文字介绍不清楚,还是直接看代码吧。一个登录功能看起来简简单单,实际上把该用的基本上都用上了。
四、源代码
本篇源码已经上传到GitHub上,本章内容在v1001分支上,Master不解释。进入源码
1、从Git上拉取分支v1001代码.
2、本地新建数据库
3、执行建表和数据脚本
4、运行
到此为止,框架的雏形已经基本形成,接下来会用两篇的内容进行总结。其中一篇总结整体架构,一篇重点讲源码结构。
最新文章
- hibernate用注解替代映射文件
- Agent理解
- express教程
- 服务器IP地址后修改SQL Server配置
- pcr free library 介绍
- 黄聪:mysql下使用update set from select
- NPOI操作EXCEL 类代码
- web前端开发随手笔记 - 持续更新
- APP如何设计才能适配iphone6/plus和iphone5
- TCP数据包结构
- Android中的layout_gravity和gravity的区别
- [Swift]LeetCode664. 奇怪的打印机 | Strange Printer
- sql server 行转列存储过程
- z分数
- mysql中engine=innodb和engine=myisam的区别(转)
- dede搜索页面上某些标签无法使用
- iOS设计模式 - 模板
- docker基本元素和底层实现
- Android-获取网络图片设置壁纸
- 计蒜客 UCloud 的安全秘钥(困难)(哈希)