asp認証コード付きユーザログインおよび検証コード実装


各種資料を参照した後,ユーザログインモジュールを実現した.主な難点はランダム検証コードの実現と検証コードのページ間の伝達操作に集中している.実装コードは次のとおりです.
login.asp:
 

  
  
  
  
  1. <
  2. FUNCTION GEN_KEY(digits) 
  3. dim char_array(80) 
  4. for i=0 to 9 
  5. char_array(i)=cstr(i) 
  6. next 
  7. for i=10 to 35 
  8. char_array(i)=chr(i+55) 
  9. next 
  10. for i=36 to 61 
  11. char_array(i)=chr(i+61) 
  12. next 
  13. randomize 
  14. do while len(output)<digits 
  15. num=char_array(int((62-0+1)*rnd+0)) 
  16. outputoutput=output&num 
  17. loop 
  18. gen_key=output 
  19.  
  20. end function 
  21. %> 
  22. <html> 
  23. <head></head> 
  24. <body> 
  25. <form name="form1" action="check.asp"> 
  26. : 
  27. <BR> 
  28. <INPUT TYPE=TEXTBOX NAME="TXTNAME"></input> 
  29. <BR> 
  30. <INPUT TYPE=TEXTBOX NAME="TXTPWD"></input> 
  31. <BR> 
  32. <INPUT TYPE=TEXTBOX NAME="TXTYZM"> 
  33. </INPUT> 
  34. <
  35. session("verifycode")=gen_key(4) 
  36. response.write session("verifycode") 
  37. %> 
  38.  
  39. <BR> 
  40. <input type=submit value=" " /> 
  41. <input type=reset value=" " /> 
  42. </form> 
  43.  
  44. </body> 
  45. </html> 

check.asp:
 

  
  
  
  
  1. <
  2. dim user 
  3. dim pwd 
  4. dim yzm 
  5. user=trim(request("txtname")) 
  6. pwd=trim(request("txtpwd")) 
  7. yzm=trim(request("txtyzm")) 
  8.  
  9. if user="" or pwd="" then 
  10.     response.write "<script>alert(' , !');document.location.href='login.asp';</script>
  11.     response.end 
  12. else 
  13.  
  14.     if user="lc" then 
  15.         if pwd="1234" then 
  16.             if session("verifycode")=yzm then 
  17.                 response.redirect "http://www.baidu.com" 
  18.             else 
  19.                 response.write " !" 
  20.             end if 
  21.         else 
  22.             response.write " !" 
  23.         end if 
  24.     else 
  25.         response.write " !" 
  26.     end if 
  27.  
  28. end if 
  29.  
  30.          
  31. %> 

プログラムを分かりやすくするために、以上の実装はデータベースの接続を考慮していません.認証コードのリフレッシュの問題もあります.