三层架构——系统用户登录模块功能实现
来源:互联网 发布:js全屏幻灯片切换效果 编辑:程序博客网 时间:2024/04/28 14:40
UI层:展现给用户的界面,并为用户提供对系统进行操作的接口,此处即为用户提供身份验证的接口(验证用户名和密码).由于UI层向用户提供了接口所以其必有接受、传递用户名、密码的方法,当用户身份验证通过后还应该有显示用户信息的方法。
界面设计:
业务逻辑层:针对用户身份验证的逻辑处理,所以对于登陆模块功能来说业务逻辑层有一个用户身份验证的方法,该方法实现对用户身份验证的逻辑处理。
数据访问层:访问数据库,该层实现对数据库的连接,对数据进行增、删、查、改。
模块类图:
用户登录状态图:
用户登录时序图:
UI层界面类实现:
Imports LoginBLL'系统登陆界面类Public Class UserLogin Private usermanager As New UserManager Public Sub Login(ByVal username As String, ByVal password As String) '系统登陆方法 Dim a As LoginEntity.Status = usermanager.Validate(username, password) If (a = LoginEntity.Status.success) Then Display(username) ElseIf (a = LoginEntity.Status.fail) Then MsgBox("用户名或密码错误!") ElseIf (a = LoginEntity.Status.lock) Then MsgBox("用户登录次数过多该账户已被锁定!") End '用户被锁定后系统退出 End If End Sub Public Sub Display(ByVal username As String) '登陆成功后显示用户名跟欢迎信息 MsgBox(username + ":欢迎登陆") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Login(txtUserName.Text, txtPassWord.Text) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End SubEnd Class
业务逻辑层具体实现:
Imports LoginDLLImports LoginEntity'业务逻辑处理类Public Class UserManager Private userdao As New UserDao Private user As New User Public Function Validate(ByVal username As String, ByVal password As String) As Status '验证用户身份返回用户状态 user = userdao.Query(username, password) user.userCount = user.userCount + 1 'MsgBox(user.userCount) If (user.userName <> username Or user.userPassword <> password) Then user.UserState = Status.fail Else user.UserState = Status.success End If If (user.userCount > 3) Then user.UserState = Status.lock End If Return user.UserState End FunctionEnd Class
数据访问层实现:
Imports LoginEntityImports System.Data.SqlClient'数据库访问类Public Class UserDao Private user As New User Private Const connectstr = "server=.;database=bbs;uid=sa;pwd=123456" Private conn As SqlClient.SqlConnection Private rs As SqlClient.SqlDataReader Private cmd As SqlClient.SqlCommand Public Sub New() conn = New SqlClient.SqlConnection conn.ConnectionString = connectstr Try conn.Open() '打开数据库连接 Console.WriteLine("数据库连接成功!") Catch ex As Exception Finally End Try End Sub Public Sub Colse() '关闭数据库连接 conn.Close() End Sub Public Function Query(ByVal username As String, ByVal password As String) As User '查询用户信息并返回用户信息 cmd = New SqlClient.SqlCommand("select * from users where name='" + username + "'and password='" + password + "'", conn) Try rs = cmd.ExecuteReader() While (rs.Read) user.userName = rs.Item("name") user.userPassword = rs.Item("password") user.UserState = Status.success End While Catch ex As Exception Finally If Not IsNothing(conn) Then Colse() End If End Try Return user End Function End Class
用户实体类:
'用户实体类Public Class User Private Count As Integer = 0 '私有成员属性记录该用户验证登陆次数 Private state As Status '用户状态 Private name As String '用户名 Private password As String '密码 Public Property UserState As Status Get Return state End Get Set(ByVal value As Status) state = value End Set End Property Public Property userName As String Get Return name End Get Set(ByVal value As String) name = value End Set End Property Public Property userPassword As String Get Return password End Get Set(ByVal value As String) password = value End Set End Property Public Property userCount As String Get Return Count End Get Set(ByVal value As String) Count = value End Set End PropertyEnd Class
状态枚举类:
'用户状态枚举类Public Enum Status success fail lockEnd Enum
- 三层架构——系统用户登录模块功能实现
- 三层架构实现用户登录
- 三层架构实例—用户登录窗体
- 三层架构实例—用户登录窗体
- 三层架构——系统登录
- ASP.NET 三层架构实现用户登录
- VB.net+三层架构 实现登录功能
- 三层架构实战篇——抽象工厂+反射实现验证用户登录!
- 【个人机房重构】——三层架构,系统登录
- 三层架构实战篇—系统登录实例
- 三层架构实战篇—系统登录实例【好】
- 三层架构实战篇—系统登录实例
- 三层架构实战篇—系统登录实例
- 三层架构实战篇—系统登录实例
- 三层架构实战篇—系统登录实例
- 三层架构实战篇—系统登录实例
- 三层架构实现登录——VB.NET版
- 三层结构实现登录功能——C#版
- DP系列之二进制状态压缩--杭电1074
- Python笔记(4):面向对象,迭代器,生产器
- Spring入门
- CLOSE_WAIT生成的原因
- 循环体内调试程序 ---(提高调试效率)
- 三层架构——系统用户登录模块功能实现
- Cocos2dx使用 TexturePacker导出的.plist
- 无所不能的duplicate--克隆数据库
- 关于表格双击事件的实现 – DWZ框架
- MinGW的简单使用
- form表单之action
- jquery validate
- Machine Learning---决策树
- 《coredump问题原理探究》Linux x86版3.8节栈布局之栈溢出coredump例子