国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2009-01-08 10:13張志杰

張志杰

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

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

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

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

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

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

1.用戶(hù)帳號(hào)表(User_accounts)

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

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

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

該字段值是表示用戶(hù)對(duì)目錄的訪問(wèn)權(quán)限。格式是:目錄名稱(chēng)、權(quán)限。

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

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

(2)HomeDir(用戶(hù)可訪問(wèn)的主目錄)字段

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

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

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

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

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

(5)Type(用戶(hù)類(lèi)型)字段

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

2.班級(jí)信息表

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

3.教師任課班級(jí)表

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

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

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

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

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

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

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è)置完成。

三、編寫(xiě)用于管理Serv-U用戶(hù)帳號(hào)的ASP站點(diǎn)

1.班級(jí)信息的添加

班級(jí)信息添加時(shí)重點(diǎn)要在服務(wù)器的硬盤(pán)上建立該班級(jí)學(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")

′從添加班級(jí)信息頁(yè)面讀取班級(jí)名稱(chēng)

dim asan_class_folder

asan_class_folder="F:ftpsj"&class;_1

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

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é)生帳號(hào)信息,并進(jìn)行相應(yīng)的設(shè)置,是該系統(tǒng)成功與否的關(guān)鍵。筆者采用將EXCEL文檔導(dǎo)入SQL數(shù)據(jù)表的方法,先將EXCEL文檔上傳至站點(diǎn)的“EXCEL”文件夾中,然后再將EXCEL文檔的學(xué)生信息逐一添加到SQL數(shù)據(jù)庫(kù)的User_accounts表中。具體實(shí)現(xiàn)方法如下:

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

EXCEL文檔的第一個(gè)工作表名稱(chēng)為“user_accounts”,有兩個(gè)字段:xh(學(xué)號(hào))、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對(duì)象

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

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

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

Connexcel.Open driver

′注意表名一定要以下邊這種格式“[表名$]"書(shū)寫(xiě)

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

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

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頁(yè)面選擇班級(jí)的值

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

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為字符的個(gè)數(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)管理

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

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

四、結(jié)束語(yǔ)

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

參考文獻(xiàn):

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

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

[3]用程序來(lái)自動(dòng)建立FTP賬號(hào)[DB/OL].http://www.west263.com/www/info/23983-1.htm.

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

(編輯:楊馥紅)

大名县| 兴安县| 伊吾县| 庆安县| 天峻县| 临湘市| 磐安县| 若尔盖县| 东宁县| 玉林市| 广宗县| 池州市| 广元市| 咸丰县| 青神县| 定安县| 扶沟县| 昌邑市| 恩平市| 双桥区| 沅陵县| 田阳县| 德庆县| 滨海县| 右玉县| 安西县| 六盘水市| 沅江市| 平定县| 仁化县| 崇文区| 老河口市| 丹阳市| 洞口县| 正宁县| 任丘市| 南昌市| 绩溪县| 慈溪市| 嵊泗县| 兴安盟|