以 ACCESS 資料庫管理帳號及密碼後,修改密碼的功能也必需自行建立。
在VS2005中建立網站(AccessChangePd),模仿「以Access資料庫管理帳號密碼」方式建立登入網頁(login.aspx)及登入後網頁(main.aspx)。其中 main.aspx 加入 LoginView 控制項及一個按鈕來連結「修改密碼」功能。
建立 ChangePd.aspx 網頁做為修改密碼的網頁,拖曳 ChangePassword 控制項到設計視窗中。
在 ChangePd.aspx.vb 中輸入下列程式碼:
Protected Sub ChangePassword1_ChangingPassword(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles ChangePassword1.ChangingPassword
' 取出Access資料庫登入者的資料
Dim ads As New AccessDataSource("~/app_data/db1.mdb", "")
Dim SqlStr As String = "select * from table1 where name='" & Context.User.Identity.Name & "'" '
ads.SelectCommand = SqlStr
Dim dv As Data.DataView
dv = ads.Select(New DataSourceSelectArguments)
Dim a As String = ChangePassword1.CurrentPassword.ToString
Dim b As String = ChangePassword1.NewPassword.ToString
' 檢查原密碼是否正確?
If dv(0)("passwd").ToString = a Then
' 如果正確就將新密碼寫入自己的資料庫
SqlStr = "update table1 set passwd='" & b & "' where name='" & Context.User.Identity.Name & "'"
ads.UpdateCommand = SqlStr
ads.Update()
' 系統會比對預設資料而出現錯誤,可導向自行撰寫的網頁
Response.Redirect("main.aspx")
End If
End Sub
至此完成修改密碼網頁。執行 login.aspx,以「a1」登入後,按「修改密碼」鈕,輸入原始密碼「aaaaa」,新密碼設為「yy」。
開啟 Access 資料庫查看 table1,可以見到密碼已改為「yy」。
下載範例檔案