• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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.

    (編輯:楊馥紅)

    玉屏| 保康县| 黔西| 上饶县| 扶绥县| 太谷县| 高要市| 山西省| 康定县| 东丰县| 沅陵县| 甘谷县| 万荣县| 连平县| 阳山县| 宁津县| 南开区| 克什克腾旗| 烟台市| 望谟县| 建昌县| 巴彦县| 绍兴市| 和硕县| 元谋县| 五莲县| 大同县| 宿迁市| 土默特左旗| 吉林省| 道真| 同心县| 长岭县| 遂昌县| 彭泽县| 句容市| 吕梁市| 鹤岗市| 南漳县| 海盐县| SHOW|