最近有寫有關系統登入的部份,剛好看到董大偉先生的ASP.NET程式設計徹底研究(這本書很不錯)
有一個範例是有關登入的機制,之前寫J2EE時並沒有用過這個用法…
第一:
先建立有關使用者登入的物件
Public Class LoginObj
Private _emp_no As String = "" ' 使用者帳號
......
' 使用者帳號
Public Property EmployeeNo() As String
Get
Return Me._emp_no
End Get
Set(ByVal Value As String)
Me._emp_no = Value
End Set
End Property
......
第二:
在另一個Class的shared method(不用再去new一個物件,讓該物件保有在memory中)
寫檢查登入資料的程式碼,如果檢查成功就把資料寫入Session中
Public Class LoginUtil
Shared Function CheckPassword(ByVal employeeNo As String, ByVal password As String,
ByRef webForm As System.Web.UI.Page) As Boolean
Dim loginObj As New LoginObj
loginObj.EmployeeNo = rd.Item("emp_employee_no").ToString()
loginObj.EmployeeName = rd.Item("emp_employee_name").ToString()
loginObj.GroupNo = rd.Item("ag_group_no").ToString()
loginObj.GroupName = rd.Item("ag_group_name").ToString()
' 將登入資料存放入session中
webForm.Session("LoginObject") = loginObj
如此一來我們就可以在任何的程式中檢查使用者是否登入成功…
' 在每個網頁中檢查使用者是否登入已登入
Shared Function CheckLogin(ByRef webForm As System.Web.UI.Page)
If webForm.Session("LoginObject") Is Nothing Then
webForm.Response.Redirect(TextUtil.FixWebUrl("index.aspx"))
End If
End Function