Sử dụng CSDL để quản lý username và password

Một phần của tài liệu giáo trình asp khoa công nghệ thông tin đại học bách khoa hồ chí minh (Trang 114)

I V CÁC KỸ THUẬT XÂY DỰNG ỨNG DỤNG ASP HOÀN CHỈNH

4.2.2.Sử dụng CSDL để quản lý username và password

Lưu trữ các thông tin vào CSDL, mỗi lần có user duyệt trang web thì sẽ bắt user nhập username và password vào, sau đó sẽ kiểm tra trong CSDL xem có đúng không .

Trước hết ta xây dựng một CSDL chứa username và password. Tệp này có tên là SECURITY.MDB gồm có bảng LIST với các cột sau :

USERNAME PASSWORD

Minh Mn12345 Tuan Hjgtsf Hai 13-937

Vậy ta tạo một tệp có tên là LOGIN.ASP chứa các hộp textbox cho user nhập : <html>

<head>

<title>Login</title> </head>

<body>

<form method="POST" action="VALIDATE.ASP">

<p><font face=".VnTimeH">Nhập username và password</font></p> <p><font face=".VnTime" size="4">UserName<input type="text" name="username" size="20"></font></p>

<p><font face=".VnTime" size="4">Password <input type="password" name="password" size="20"></font></p>

<p><font face=".VnTime" size="4"><input type="submit" value="Login" name="Login"><input type="reset" value="Clear" name="Clear"></font></p>

</form> </body> </html>

Ta tạo tệp có tên VALIDATE.ASP để truy xuất vào database để kiểm tra : <% strUN=request(“username”) strPW=request(“password”) set conn=Server.CreateObject("ADODB.Connection") conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&_ server.mappath("security.mdb") conn.open set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT * FROM LIST WHERE USERNAME=’" & strUN & “’ and “ & _ “PASSWORD = ‘” & strPW & “’”

rs.Open sql, conn,2,3

if not (rs.eof or rs.bof) then

Response.write “Bạn không có quyền được truy cập trang này” Response.end ‘ ngừng duyệt else Response.write “Chào mừng bạn ” end if rs.close set rs=nothing conn.close set conn=nothing %>

Tuy nhiên vẫn phải lưu ý trường hợp sau : giả sử ta có hệ thống trang Web gồm 5 files mà file nào cũng cần phải kiểm tra quyền hạn truy nhập của user. Vậy ngoài màn hình login ra ta còn phải bảo vệ cho hệ thống các trang web vì đề phòng trường hợp user biết địa chỉ các trang Web này mà user vào thẳng luôn. Vậy ta làm như sau:

Trang login kiểm tra username và password nhưở trên. Tuy nhiên sau khi kiểm tra xong ta phải lưu kết quả kiểm tra được vào session (session(“login”) = “ok” chẳng hạn) <% strUN=request(“username”) strPW=request(“password”) set conn=Server.CreateObject("ADODB.Connection") conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&_ server.mappath("security.mdb") conn.open set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT * FROM LIST WHERE USERNAME=’" & strUN & “’ and “ & _ “PASSWORD = ‘” & strPW & “’”

rs.Open sql, conn,2,3

if not (rs.eof or rs.bof) then

Response.write “Bạn không có quyền được truy cập trang này” Response.end ‘ ngừng duyệt

else

Session(“Login”)=”ok” ‘ Ghi nhận việc thành công login end if

rs.close

set rs=nothing conn.close

set conn=nothing %>

Ta tạo một tệp có tên là CheckLogin.asp . Mục đích của tệp này sẽ kiểm tra biến Session(“login”) nếu nó bằng “ok” nghĩa là user hợp lệ không thì ngược lại :

<% (adsbygoogle = window.adsbygoogle || []).push({});

if not (session(“login”)=”ok”) then

response.write “ Bạn không được quyền truy nhật trang web này “ response.redirect “login.asp” ‘ tựđộng quay sang trang login end if

%>

Và ở đầu mỗi tệp ASP mà ta cần bảo vệ việc truy cập trái phép ta chèn thêm dòng lệnh sau : <!--#CheckLogin.asp-->

Một phần của tài liệu giáo trình asp khoa công nghệ thông tin đại học bách khoa hồ chí minh (Trang 114)