I V CÁC KỸ THUẬT XÂY DỰNG ỨNG DỤNG ASP HOÀN CHỈNH 4.1 Quản lý môi trýờng trong ASP
4.2.2. Sử dụng CSDL ðể quản lý username và password
Lýu trữ các thông tin vào ắSừỔự 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 ắSừỔ xem có đúng không ứ
Xem vắ dụ sau :
Trýớc hết ta xây dựng một ắSừỔ chứa username và passwordứ Tệp này có tên là SẫắURỡTYứỹừở gồm có bảng ỔỡST với các cột sau ồ
Minh Mn12345
Tuan Hjgtsf
Hai 13-937
Vậy ta tạo một tệp có tên là ỔỨỗỡẹứĩSP 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 VĩỔỡừĩTẫứĩSP để 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=Ỗẽ ạ strUẹ ạ ỘỖ and Ộ ạ _
ỘPĩSSWỨRừ ọ ỔỢ ạ strPW ạ ỘỖỢ
rs.Open sql, conn,2,3
if not (rs.eof or rs.bof) then
Response.end Ổ ngừng duyệt else Response.write Ộắhà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=Ỗẽ ạ strUẹ ạ ỘỖ and Ộ ạ _
ỘPĩSSWỨRừ ọ ỔỢ ạ strPW ạ ỘỖỢ
rs.Open sql, conn,2,3
if not (rs.eof or rs.bof) then
Response.write Ộởạn không có quyền đýợc truy cập trang nàyỢ Response.end Ổ ngừng duyệt
else
Session(ỘỔoginỢờọỢokỢỔ ỗhi 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à ắheckỔoginứasp ứ ỹụ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 ồ
<%
if not (session(ỘloginỢờọỢokỢờ then
response.write Ộ ởạ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 ĩSP 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-->