• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ASP技術(shù)的學(xué)生作業(yè)FTP站點(diǎn)管理系統(tǒng)的實現(xiàn)

      2009-01-08 10:13張志杰
      中國教育信息化·高教職教 2009年12期

      張志杰

      摘要:筆者在多年從事機(jī)房管理的過程中,摸索出一套較好的數(shù)據(jù)盤還原方法。利用Serv-U支持ODBC數(shù)據(jù)庫的功能,再使用ASP開發(fā)Web站點(diǎn),來管理FTP站點(diǎn),完成學(xué)生作業(yè)的保存與教師對學(xué)生作業(yè)的批閱功能。

      關(guān)鍵詞:系統(tǒng)盤還原 數(shù)據(jù)盤還原 ODBC數(shù)據(jù)庫 ASP

      中圖分類號:TP393.18 文獻(xiàn)標(biāo)識碼:B 文章編號:1673-8454(2009)23-0026-04

      機(jī)房是學(xué)生的重要實踐場所,保證計算機(jī)的完好率是機(jī)房管理的主要任務(wù),為了完成這一任務(wù),現(xiàn)在機(jī)房大多采用硬件還原技術(shù)。在設(shè)置硬盤還原參數(shù)時,如果只還原系統(tǒng)盤,數(shù)據(jù)盤上留存的數(shù)據(jù)給系統(tǒng)正常運(yùn)行留下了安全隱患;如果系統(tǒng)盤與數(shù)據(jù)盤同時還原,學(xué)生的作業(yè)無法保存,特別是設(shè)計類課程,過程的重要性更不允許數(shù)據(jù)盤還原,管理人員往往處于兩難境地。那么,有沒有一個兩全方案呢?筆者在多年從事機(jī)房管理的過程中,摸索出解決這一兩難問題的方法。利用Serv-U支持ODBC數(shù)據(jù)庫的功能,再使用ASP開發(fā)Web站點(diǎn),來管理FTP站點(diǎn),完成學(xué)生作業(yè)的保存與教師對學(xué)生作業(yè)的批閱功能。下文是該系統(tǒng)實現(xiàn)的方法介紹。

      一、數(shù)據(jù)庫結(jié)構(gòu)

      在SQL Server、Access、MySQL等支持ODBC的數(shù)據(jù)庫管理系統(tǒng)中,建立一個名為FTP的數(shù)據(jù)庫(本文采用SQL Server作為數(shù)據(jù)庫平臺),該數(shù)據(jù)庫中主要的表與表結(jié)構(gòu)如下:

      1.用戶帳號表(User_accounts)

      用戶帳號表(User_accounts)是Serv-U從數(shù)據(jù)庫中讀取的主要信息數(shù)據(jù)表,此表是本系統(tǒng)的核心數(shù)據(jù)表。具體內(nèi)容如表1所示。

      User_accounts表中關(guān)鍵字段介紹:

      (1)Access(目錄與訪問規(guī)則)字段

      該字段值是表示用戶對目錄的訪問權(quán)限。格式是:目錄名稱、權(quán)限。

      用戶對目錄的訪問權(quán)限有R(讀取)、W(寫入)、A(附加)、M(修改)、E(執(zhí)行——由于安全原因,所有帳號均不能開啟此權(quán)限)、L(目錄)列表、C(建立目錄)、D(刪除目錄)、P(將權(quán)限繼承給子目錄)等9種權(quán)限。

      例如:用戶可訪問的目錄是h:ftpsj軟件0611班張三20060101001。訪問權(quán)限是:讀取、寫入、修改、列表、建立目錄、刪除目錄、將權(quán)限繼承給子目錄。該字段的值就是h:ftpsj軟件0611班張三20060101001|RWMLCDP

      (2)HomeDir(用戶可訪問的主目錄)字段

      該字段值表示用戶可訪問的主目錄,建議在設(shè)置用戶目錄時分三層來建立,第一層主目錄,第二層為班級目錄,第三層為用戶目錄。其結(jié)構(gòu)如圖1所示。

      (3)Password(用戶口令)字段

      Serv-U密碼加密算法為隨機(jī)碼與MD5 32 位加密。算法為隨機(jī)產(chǎn)生2個字符,如ar。將ar+明文密碼(如password)使用MD5加密,如MD5("arpassword"),生成密碼后將所有小寫字符變?yōu)榇髮?最前加上這兩個隨機(jī)字符"ar"+" 3F6D159FF468A70E54E209C3F556601C ",生成最終密碼。

      (4)QuotaMax(最大使用硬盤空間)字段

      該字段是用來設(shè)置用戶FTP的最大容量的,單位以字節(jié)(byte)。

      (5)Type(用戶類型)字段

      Type字段是用來保存用戶類型的,在學(xué)校一般用戶類型有三類:學(xué)生、職工、教師。學(xué)生與職工只能使用查看自己的FTP信息;任課教師既能管理和使用自己的FTP數(shù)據(jù),又能查看自己所帶班級的FTP數(shù)據(jù),這樣任課教師就可以在任何時間、任何地點(diǎn)查閱學(xué)生的作業(yè)。

      2.班級信息表

      表2用于保存使用FTP的學(xué)生班級情況。

      3.教師任課班級表

      二、Serv-U的主要設(shè)置說明

      1.企業(yè)版的Serv-U(4.1以上版本)才夠支持ODBC。在Serv-U安裝完成后,根據(jù)向?qū)Ы⑿碌挠騇yFtp,并將Serv-U的域類型設(shè)置為“存儲于ODBC數(shù)據(jù)庫中”,如圖2所示。

      2.選擇MyFtp在ODBC源名稱框內(nèi)輸入ODBC數(shù)據(jù)源名稱ftp。在ODBC帳號名文本框內(nèi)輸入數(shù)據(jù)庫管理員用戶名,在ODBC帳號密碼文本框內(nèi)輸入數(shù)據(jù)庫管理員口令。如圖3所示。

      3.退出Serv-U應(yīng)用程序,并結(jié)束ServUDaemon.exe進(jìn)程。

      4.使用記事本打開Serv-U的配置文件ServUDaemon.ini。做如下修改:

      ODBCSource=ftp|“數(shù)據(jù)庫管理員帳號”、“數(shù)據(jù)庫管理員口令”

      ODBCTables=user_accounts|group_accounts|user_ access|group_access|user_IP_access|group_IP_access

      ODBCColumns=user|password|skey|homedir||access|disable||relpaths|||changepass|quotaenable||||maxusers|||ratioup|ratiodown|ratiocredit|quotacurrent|quotamax|expiration|privilege|passtype|ratiotype|groups|notes|indexno

      至此Serv-U設(shè)置完成。

      三、編寫用于管理Serv-U用戶帳號的ASP站點(diǎn)

      1.班級信息的添加

      班級信息添加時重點(diǎn)要在服務(wù)器的硬盤上建立該班級學(xué)生存放作業(yè)的文件夾。主要代碼如下:

      <%

      set conn=server.createobject("adodb.connection")

      conn.open "driver={SQL Server};server=(LOCAL);database=FTP;uid=sa;pwd=;"

      class_1=request.form("class1")

      ′從添加班級信息頁面讀取班級名稱

      dim asan_class_folder

      asan_class_folder="F:ftpsj"&class;_1

      ′創(chuàng)建用戶所在的目錄文件夾

      Set fso = CreateObject("Scripting.FileSystemObject")

      if not fso.FolderExists(asan_class_folder) then

      ′檢查文件夾是否存在

      fso.createFolder(asan_class_folder)

      end if

      exec="select * from class"

      set rs=server.createobject("adodb.recordset")

      class_2="select * from class where class=′"&class;_1&"′"

      rs.open class_2,conn,1,3

      if rs.recordcount>0 then

      response.write("")

      else

      rs.close

      rs.open exec,conn,1,3

      if class_1<>"" then

      exec="insert into class(class) values(′"&class;_1&"′)"

      conn.execute exec

      response.write("")

      else

      response.write("")

      rs.close

      set rs=nothing

      conn.close

      set conn=nothing

      end if

      end if

      2.學(xué)生信息的添加

      學(xué)生信息的添加是學(xué)生作業(yè)FTP站點(diǎn)管理程序的重要工作,如何快速、準(zhǔn)確地添加學(xué)生帳號信息,并進(jìn)行相應(yīng)的設(shè)置,是該系統(tǒng)成功與否的關(guān)鍵。筆者采用將EXCEL文檔導(dǎo)入SQL數(shù)據(jù)表的方法,先將EXCEL文檔上傳至站點(diǎn)的“EXCEL”文件夾中,然后再將EXCEL文檔的學(xué)生信息逐一添加到SQL數(shù)據(jù)庫的User_accounts表中。具體實現(xiàn)方法如下:

      (1)EXCEL文檔結(jié)構(gòu)

      EXCEL文檔的第一個工作表名稱為“user_accounts”,有兩個字段:xh(學(xué)號)、user_true(學(xué)生姓名),具體結(jié)構(gòu)如圖4所示。

      (2)關(guān)鍵代碼

      ′==========處理上傳EXCEL文件=========

      Set fso = CreateObject("Scripting.FileSystemObject")

      fle_name=fso.FileExists(Server.MapPath("/") &"excel wwww.xls")

      if fle_name then

      Dim Connexcel,Driver,DBPath,Rs

      ′建立Connection對象

      Set ConnExcel=Server.CreateObject("ADODB.Connection")

      driver="driver={icrosoft EXCEL driver (*.xls)};dbq="&server.mappath;("..excelwwww.xls")

      ′調(diào)用Open方法EXCEL

      Connexcel.Open driver

      ′注意表名一定要以下邊這種格式“[表名$]"書寫

      set rs=server.createobject("adodb.recordset")

      Sql="Select * From [User_accounts$] "

      Rs.open sql,connexcel,1,1

      Set ConnSQL=Server.CreateObject("ADODB.Connection")

      connSQL.open "driver={SQL Server};server=(LOCAL);database=FTP;uid=sa;pwd=;"

      set recor=server.createobject("adodb.recordset")

      recor.open "select * from user_accounts where [user]=′"&trim;(rs("xh"))&"′",connSQL,1,1

      if recor.recordcount>0 then

      recor.close

      response.write("")

      response.end

      else

      recor.close

      ′===========寫入數(shù)據(jù)庫=========

      do while not rs.eof

      rndstr = MyRandc(2) ′兩位隨機(jī)字母

      newdbpassword = rndstr & md5(rndstr & trim(rs("xh")))

      ‘MD5()函數(shù)將明碼轉(zhuǎn)換為MD5密碼

      asan_class_folder=user_folder&session;("class")&""&trim;(rs("user_true"))&trim;(rs("xh"))

      ′user_folder: ASP的全局變量,作業(yè)存放的主目錄

      ′session("class"): html頁面選擇班級的值

      ′創(chuàng)建用戶所在的目錄文件夾。

      If not fso.FolderExists(asan_class_folder) then

      ′′檢查文件夾是否存在

      fso.createFolder(asan_class_folder)

      end if

      ′添加學(xué)生信息

      exe="insert into User_accounts ([User],Access,HomeDir,user_true,class,class_id,password,type,skey,ratiotype,quotacurrent,quotaenable,QuotaMax) "& " values " &"(′"&rs;("xh")&"′,′"& user_folder&session;("class")&""&trim;(rs("user_true"))&trim;(rs("xh"))&ServUAccess;&"′,′"&user;_ folder&session;("class")&""&trim;(rs("user_true"))&trim;(rs("xh"))&"′,′"&trim;(rs("user_true"))&"′,′"&session;("class")&"′"&","&session;("class_id")&",′"&newdbpassword;&"′"&", ′學(xué)生′,′′,0,0,1,20971520)"

      ‘默認(rèn)學(xué)生的FTP空間為20M

      connSQL.Execute(exe)

      rs.movenext

      loop

      Response.Redirect "query.asp"

      rs.close()

      set connSQL=nothing

      set connEXcel=nothing

      fso.DeleteFile(Server.MapPath("/") &"excelwwww.xls")

      end if

      end if

      function MyRandc(n)′生成隨機(jī)字符函數(shù),n為字符的個數(shù)

      thechr = ""

      for i=1 to n

      Randomize timer

      zNum = cint(25*Rnd)

      if zNum mod 2 = 0 then

      zNum = zNum + 97

      else

      zNum = zNum + 65

      end if

      thechr = thechr & chr(zNum)

      next

      MyRandc = thechr

      end function

      ′==========處理上傳EXCEL文件完成===========

      3.任課教師FTP站點(diǎn)管理

      任課教師帳號的添加可參考學(xué)生信息的添加,只要將字段“type”的值設(shè)置為“任課教師”即可。

      任課教師通過Web站點(diǎn)登錄后,可設(shè)置登錄FTP站點(diǎn)查閱內(nèi)容為自己的數(shù)據(jù)或所帶班級的作業(yè)數(shù)據(jù),該功能的實現(xiàn)只要修改教師用戶的Access與HomeDir兩個字段的值為相應(yīng)的目錄即可,限于篇幅這里不再敘述。

      四、結(jié)束語

      只要我們認(rèn)真研究Serv-U的數(shù)據(jù)庫結(jié)構(gòu),就可以使用ASP編程來實現(xiàn)對Serv-U建立的FTP站點(diǎn)全面管理,如FTP站點(diǎn)的注冊、審批、計費(fèi)等管理業(yè)務(wù)。筆者在近幾年的使用過程中,每學(xué)期都有新功能的添加,為學(xué)院計算機(jī)教學(xué)提供了有力的技術(shù)保障。

      參考文獻(xiàn):

      [1]Serv-U的ODBC數(shù)據(jù)庫做法[DB/OL].http://hi.baidu.com/my100du/blog/item/b1db1ad7f1a3bdd5a044df08.html.

      [2]簡析如何使用Serv-U的ODBC功能[DB/OL].http://www.51cto.com/art/200701/38695.htm.

      [3]用程序來自動建立FTP賬號[DB/OL].http://www.west263.com/www/info/23983-1.htm.

      [4]使用ODBC數(shù)據(jù)庫管理Serv-U的FTP用戶及相關(guān)ASP編程[EB/OL].http://www.jb51.net/article/12711.htm.

      (編輯:楊馥紅)

      革吉县| 普定县| 武夷山市| 西乡县| 渭源县| 健康| 徐州市| 江阴市| 惠来县| 漠河县| 丰顺县| 皋兰县| 突泉县| 阳江市| 新源县| 金平| 萝北县| 灌南县| 汾阳市| 集安市| 黄浦区| 屯昌县| 铜梁县| 比如县| 隆德县| 铜川市| 樟树市| 朝阳市| 正蓝旗| 合山市| 安乡县| 孟州市| 阳朔县| 双牌县| 万宁市| 南宫市| 甘谷县| 来凤县| 沂源县| 台安县| 纳雍县|