葉 濤
(南方醫(yī)科大學(xué)教育技術(shù)中心,廣東 廣州 510515)
·網(wǎng)絡(luò)與遠(yuǎn)程教育·
網(wǎng)絡(luò)課程教學(xué)與管理平臺(tái)中角色及權(quán)限的設(shè)計(jì)與實(shí)現(xiàn)
葉 濤
(南方醫(yī)科大學(xué)教育技術(shù)中心,廣東 廣州 510515)
角色的設(shè)計(jì)與實(shí)現(xiàn)是網(wǎng)絡(luò)課程教學(xué)與管理平臺(tái)開(kāi)發(fā)中的關(guān)鍵部分,它包括角色的定義與描述,角色對(duì)系統(tǒng)資源的操作權(quán)限定義及角色之間的關(guān)系描述等。網(wǎng)絡(luò)課程平臺(tái)的角色設(shè)計(jì)體現(xiàn)設(shè)計(jì)者對(duì)網(wǎng)絡(luò)課程建設(shè)、管理及教學(xué)等過(guò)程及活動(dòng)的理解。文章以具體的網(wǎng)絡(luò)課程平臺(tái)開(kāi)發(fā)為例,闡述了其中角色及權(quán)限的設(shè)計(jì)與實(shí)現(xiàn),對(duì)其他類似平臺(tái)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)具有一定的參考意義。
網(wǎng)絡(luò)課程;平臺(tái)開(kāi)發(fā);角色
用戶是平臺(tái)的具體使用者,角色用于表示用戶的身份,是按平臺(tái)具體業(yè)務(wù)劃分的某類用戶,如網(wǎng)絡(luò)教學(xué)平臺(tái)中的教師、學(xué)生等。在平臺(tái)中的每個(gè)用戶都?xì)w屬于某類角色,并由此決定該用戶在平臺(tái)中所能具有的行為,以及對(duì)系統(tǒng)資源的操縱權(quán)限等。在計(jì)算機(jī)軟件開(kāi)發(fā)中,角色一般指平臺(tái)中某類用戶的標(biāo)識(shí),用于表示平臺(tái)中具有相同安全權(quán)限的用戶集合,是用戶管理的單元[1]。角色的設(shè)計(jì)一般從系統(tǒng)管理、運(yùn)作、應(yīng)用的具體業(yè)務(wù)流程出發(fā),將其中所涉及的用戶對(duì)象歸類到不同集合,明確具體集合中對(duì)象在系統(tǒng)中的行為及對(duì)系統(tǒng)資源所擁有的權(quán)限。角色、權(quán)限的設(shè)計(jì)是計(jì)算機(jī)軟件設(shè)計(jì)的重要部分,平臺(tái)中用戶的管理、資源的使用權(quán)限、用戶的行為、用戶之間的關(guān)系都與之有關(guān)。通過(guò)角色與權(quán)限的設(shè)計(jì),可以使平臺(tái)體系結(jié)構(gòu)清晰,組織合理,提高網(wǎng)絡(luò)教學(xué)平臺(tái)的管理效率和后期可維護(hù)性,使平臺(tái)運(yùn)行順暢。
網(wǎng)絡(luò)課程教學(xué)與管理平臺(tái) (下稱“網(wǎng)絡(luò)課程平臺(tái)”)屬于基于因特網(wǎng)的教學(xué)和管理平臺(tái)范疇。
一個(gè)完整的支持基于因特網(wǎng)的教學(xué)和管理支撐平臺(tái)至少應(yīng)由 3個(gè)系統(tǒng)組成:網(wǎng)上課程開(kāi)發(fā)系統(tǒng)、網(wǎng)上教學(xué)支持系統(tǒng)和網(wǎng)上教學(xué)管理系統(tǒng)[2]。據(jù)此,我們將網(wǎng)絡(luò)課程平臺(tái)理解為:是在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境下,以課程為基本單位組織教學(xué)資源、實(shí)施教學(xué)活動(dòng)與教務(wù)管理的系統(tǒng)。主要功能包括網(wǎng)絡(luò)課程建設(shè)、網(wǎng)絡(luò)課程教學(xué)與網(wǎng)絡(luò)課程管理。網(wǎng)絡(luò)課程平臺(tái)的角色與權(quán)限設(shè)計(jì)首先從教學(xué)系統(tǒng)結(jié)構(gòu)元素的主要活動(dòng)出發(fā),結(jié)合網(wǎng)絡(luò)課程的建設(shè)與管理需求具體化。
教學(xué)系統(tǒng)的要素有 4個(gè),即教師、學(xué)生、內(nèi)容與環(huán)境[3],對(duì)這 4個(gè)要素在網(wǎng)絡(luò)課程平臺(tái)中的形式與關(guān)系理解如圖 1所示:
圖1 教學(xué)系統(tǒng)要素在網(wǎng)絡(luò)課程教學(xué)與建設(shè)子系統(tǒng)中的形式與關(guān)系圖
在圖 1中,網(wǎng)絡(luò)課程平臺(tái)相當(dāng)于環(huán)境要素,課程資源、公共資源、公告、作業(yè)、論壇等統(tǒng)歸為內(nèi)容。其中,論壇、作業(yè)等是網(wǎng)上教學(xué)活動(dòng)展開(kāi)的支撐環(huán)境,網(wǎng)絡(luò)教學(xué)活動(dòng)主體是教師與學(xué)生,教師主要教學(xué)活動(dòng)有設(shè)計(jì)、加工、制作課程資源和公共資源、發(fā)布教學(xué)公告、布置作業(yè)、參與論壇等。學(xué)生主要學(xué)習(xí)活動(dòng)有學(xué)習(xí)課程資源 (文本、視頻等),圍繞作業(yè)進(jìn)行思考、參與論壇討論、完成作業(yè)、內(nèi)化知識(shí)等。由此可見(jiàn),教師、學(xué)生是網(wǎng)絡(luò)課程平臺(tái)兩大主要角色。
進(jìn)一步從網(wǎng)絡(luò)課程建設(shè)與教學(xué)過(guò)程的需求分析出發(fā),將角色細(xì)化。我們使用訪談方法,了解學(xué)科教師、學(xué)校與院系教務(wù)人員對(duì)網(wǎng)絡(luò)課程建設(shè)、教學(xué)、管理過(guò)程的理解與看法,確立網(wǎng)絡(luò)課程建設(shè)與管理模式,確定網(wǎng)絡(luò)課程平臺(tái)角色及權(quán)限設(shè)計(jì)如圖 2所示:
圖 2 網(wǎng)絡(luò)課程系統(tǒng)角色及權(quán)限設(shè)計(jì)框圖
圖 2中對(duì)網(wǎng)絡(luò)課程平臺(tái)的角色定義及權(quán)限描述如下:
●訪客:系統(tǒng)中未注冊(cè)的用戶。具體權(quán)限有:瀏覽系統(tǒng)公告;瀏覽課程信息 (不能申請(qǐng)選課);查詢、查看公共教學(xué)資源目錄(不能點(diǎn)播教學(xué)資源)。
●學(xué)生:系統(tǒng)中注冊(cè)用戶默認(rèn)的身份。具有的權(quán)限為:修改個(gè)人的信息;點(diǎn)播公共資源;提出選修課程;選修課程申請(qǐng)獲通過(guò)后能夠?yàn)g覽、下載選修課程的教學(xué)資源,參與該課程的學(xué)習(xí)討論。
●教師:教師除了具有學(xué)生的所有權(quán)限外,還具有的權(quán)限為:申請(qǐng)開(kāi)設(shè)課程,若成功申請(qǐng)則成為該門課程的主持人;具有被其他課程的主持人邀請(qǐng)加入其他課程教師團(tuán)隊(duì)的資格。
●課程教師:被課程主持人加入課程中成為課程教師,他就具有這門課程的建設(shè)權(quán)限,包括課程資源目錄的修改、課程資源的上傳與編輯等。
●課程主持人:對(duì)應(yīng)于實(shí)際教學(xué)中的某門課程的教學(xué)組長(zhǎng)或主講教師,系統(tǒng)設(shè)計(jì)為首先申請(qǐng)成功開(kāi)設(shè)課程的教師為課程主持人,一門課程只有一名課程主持人。它具有課程內(nèi)容建設(shè)的最高權(quán)限,除具有教師的課程內(nèi)容建設(shè)權(quán)限外,他具有課程公告管理 (發(fā)布、刪除、修改)權(quán)限;修改課程主頁(yè)信息(課程簡(jiǎn)介、學(xué)分、性質(zhì)等)權(quán)限;具有課程教師團(tuán)隊(duì)管理(增加、刪除)的權(quán)限。課程主持人與課程教師角色在系統(tǒng)中不是全局的,局限于某門課程之內(nèi),一門課程的主持人在另一門課程中可能只是教師。
●管理員:系統(tǒng)可以具有多名管理員,一般為學(xué)院(系)方面的教務(wù)員帳戶,對(duì)院(系)內(nèi)的用戶或課程進(jìn)行管理。管理員具有以下權(quán)限:用戶管理 (認(rèn)證、刪除、改變用戶角色);網(wǎng)絡(luò)課程管理 (認(rèn)證、刪除)、公共教學(xué)資源管理 (增加、刪除、修改、統(tǒng)計(jì))、系統(tǒng)公告管理(增加、刪除、修改)。
●超級(jí)管理員:具有系統(tǒng)管理的最高權(quán)限,除具有管理員的權(quán)限外,他具有將系統(tǒng)中用戶升級(jí)為管理員的權(quán)限,一般為教育技術(shù)中心負(fù)責(zé)網(wǎng)絡(luò)教學(xué)的人員擔(dān)任。超級(jí)管理員與各個(gè)院系的管理員組成系統(tǒng)的管理團(tuán)隊(duì)。
圖 2中各種角色對(duì)系統(tǒng)資源所具有的操作權(quán)限,實(shí)際上也描述系統(tǒng)的主要功能與業(yè)務(wù)流程。據(jù)此作進(jìn)一步的系統(tǒng)設(shè)計(jì),使系統(tǒng)的設(shè)計(jì)具體化,使用類程序語(yǔ)言表達(dá)系統(tǒng)的實(shí)體,是程序編碼的藍(lán)圖。在這里主要使用面向?qū)ο笤O(shè)計(jì)思想與方法 (object oriented designed,OOD)。面向?qū)ο笫悄壳败浖治?、設(shè)計(jì)、編碼的一種重要思想與方法,其主要思想是將軟件系統(tǒng)中的實(shí)體資源用業(yè)務(wù)流程中現(xiàn)實(shí)對(duì)象進(jìn)行模擬,如:教學(xué)過(guò)程中的教師,在網(wǎng)絡(luò)課程教學(xué)系統(tǒng)中就有教師對(duì)象與之對(duì)應(yīng)。面向?qū)ο蠓椒ㄖ饕锰幨窃谙到y(tǒng)分析時(shí)能以現(xiàn)實(shí)自然的方式進(jìn)行分析與設(shè)計(jì),在具體實(shí)現(xiàn)上以對(duì)象的形式將數(shù)據(jù)與行為封裝在一起,使系統(tǒng)數(shù)據(jù)更安全、系統(tǒng)架構(gòu)更為合理。
利用OOD對(duì)系統(tǒng)進(jìn)行分析設(shè)計(jì),例如課程實(shí)體對(duì)象設(shè)計(jì)如下:
課程對(duì)象行為包括:申請(qǐng)創(chuàng)建課程、修改課程、刪除課程、獲取課程主持人、檢查課程是否被通過(guò)、通過(guò)課程創(chuàng)建申請(qǐng)、獲得該門課程所有教師等,如圖3虛線內(nèi)部分所示。課程對(duì)象封裝了課程的屬性,定義課程所具有的行為,這些行為對(duì)外提供操作接口,系統(tǒng)中不同的角色根據(jù)權(quán)限定義只能獲得相應(yīng)的對(duì)象接口,超出其權(quán)限的接口被屏蔽掉,如圖 3虛線外部分所示:
同樣地,系統(tǒng)其他對(duì)象具有的行為設(shè)計(jì)如下:
●公共教學(xué)資源:包括點(diǎn)播、查詢、查看描述信息、修改描述信息、增加資源、刪除資源等行為。
●課程目錄樹對(duì)象:包括初始化、增加節(jié)點(diǎn)、刪除節(jié)點(diǎn)、修改節(jié)點(diǎn)、獲取節(jié)點(diǎn)的資源等行為。
●新聞公告對(duì)象:包括瀏覽、發(fā)布、修改、刪除等行為。
●用戶對(duì)象:包括注冊(cè)、確認(rèn)、角色改變、初始化密碼、刪除、修改等行為。
●論壇帖子對(duì)象:包括發(fā)布、刪除、修改等行為。
●題目對(duì)象:包括增加、刪除、修改等行為。
●作業(yè)對(duì)象:包括發(fā)布、獲取作業(yè)的題目、增加題目、刪除題目等行為。
圖 3 用戶操作請(qǐng)求、角色判斷與權(quán)限控制和課程對(duì)象接口關(guān)系圖
通過(guò)對(duì)系統(tǒng)中實(shí)體對(duì)象的設(shè)計(jì)(對(duì)象的具體屬性略去),歸納出對(duì)象的操作接口,通過(guò)在對(duì)象操作接口上加入角色判斷與權(quán)限控制層,對(duì)用戶的角色進(jìn)行判斷,根據(jù)不同的角色賦予對(duì)象不同的操作權(quán)限,從而達(dá)到根據(jù)用戶角色進(jìn)行權(quán)限控制的目的(如圖 3所示)。
網(wǎng)絡(luò)課程平臺(tái)的實(shí)現(xiàn)是基于M icrosoft的.NET Fram ework1.1框架,開(kāi)發(fā)環(huán)境為V isual Studio.net2003,采用C#編碼實(shí)現(xiàn)。
3.1.1 用戶驗(yàn)證 ASP.NET提供多種身份驗(yàn)證模式,包括基本身份驗(yàn)證、摘要身份驗(yàn)證、窗體身份驗(yàn)證、Passport身份驗(yàn)證和集成的W indow s身份驗(yàn)證[4]。這里主要討論窗體身份驗(yàn)證,其機(jī)制如圖 4所示:
圖 4 ASP.NET Form s窗體安全機(jī)制模式圖
圖中的 Cookies是平臺(tái)服務(wù)端儲(chǔ)存到客戶端的硬盤或內(nèi)存少量數(shù)據(jù)集合,它可以記錄用戶的 ID、密碼、瀏覽過(guò)的網(wǎng)頁(yè)、停留的時(shí)間等信息。當(dāng)用戶再次訪問(wèn)平臺(tái)時(shí),平臺(tái)通過(guò)讀取 Cook ies,得知用戶的相關(guān)信息,就可以做出相應(yīng)的動(dòng)作。例如:在頁(yè)面顯示用戶信息,或者讓用戶不用輸入 ID、密碼就直接登錄等。從本質(zhì)上講,它可以看作是用戶的身份證。當(dāng)用戶提出訪問(wèn)系統(tǒng)的請(qǐng)求后,系統(tǒng)會(huì)判斷請(qǐng)求是否附加了身份驗(yàn)證的 Cook ie,如果沒(méi)有,則 ASP. NET會(huì)將請(qǐng)求重定向到登錄頁(yè),該頁(yè)的路徑駐留在應(yīng)用程序的配置文件W eb.config中。當(dāng)用戶在登錄頁(yè)上輸入所需的憑據(jù) (通常是用戶名與密碼)后,系統(tǒng)在事件處理程序中檢查憑據(jù)以確認(rèn)它們的真實(shí)性,如果憑據(jù)通過(guò)身份驗(yàn)證,則系統(tǒng)會(huì)向客戶端發(fā)送附加包含用戶名但包不含密碼的憑據(jù),作為 Cookie儲(chǔ)存在客戶端,作為該用戶以后訪問(wèn)系統(tǒng)的憑據(jù)(如圖 4虛線上半部分所示)。
3.1.2 用戶角色判斷 當(dāng)客戶端的訪問(wèn)通過(guò)身份驗(yàn)證后,表明客戶端請(qǐng)求是平臺(tái)的注冊(cè)用戶,但是什么角色的用戶,該賦予哪些權(quán)限還需要作進(jìn)一步的判斷(圖 4虛線下半部分)。ASP.NET提供 IPrincipal接口實(shí)現(xiàn)角色的判斷,IPrincipal接口包含一個(gè)Identity屬性和一個(gè) IsInRo le方法。Identity屬性用來(lái)封裝用戶的具體信息,需根據(jù)具體應(yīng)用定義。IsInRo le方法帶有一個(gè)字符串參數(shù),參數(shù)將具體的角色名傳入 IsInRo le方法中與當(dāng)前用戶的角色名進(jìn)行比較,如果一致則返回“真”的布爾值,說(shuō)明當(dāng)前用戶的角色與參數(shù)值的角色一致;反之返回“非”布爾值,說(shuō)明當(dāng)前用戶的角色與參數(shù)值的角色不一致。IsInRo le方法也必須根據(jù)具體應(yīng)用要求編程實(shí)現(xiàn)。
實(shí)現(xiàn) IPrincipal接口的對(duì)象在.NET Framework中稱之為 Principal對(duì)象(主體對(duì)象)。在 ASP.NET中基于角色的安全性是由 Principal對(duì)象實(shí)現(xiàn)。主體對(duì)象表示運(yùn)行代碼的安全性上下文,實(shí)現(xiàn)基于角色安全性的應(yīng)用程序根據(jù)同主體對(duì)象的關(guān)聯(lián)角色授予權(quán)限[5]。其角色判斷機(jī)制如圖 5所示:
在圖 5中,根據(jù)具體應(yīng)用需要定義 Principal對(duì)象,以實(shí)現(xiàn) IPrincipal接口 (Identity屬性和 IsInRole方法);將當(dāng)前用戶的信息實(shí)例化 Principal對(duì)象;實(shí)例化的 Principal對(duì)象 (含有具體用戶信息)賦予 H ttp Context.User對(duì)象,H ttpContext.User對(duì)象位于 System. W eb命名空間,是ASP.NET系列封裝上下文信息的類之一,ASP.NET通過(guò)這些類維護(hù)有關(guān)當(dāng)前應(yīng)用程序、每個(gè)用戶會(huì)話、當(dāng)前 HTTP請(qǐng)求、請(qǐng)求的W eb窗體頁(yè)等信息。ASP.NET頁(yè)框架包含一系列封裝此上下文信息的類,使這些類的實(shí)例可以從代碼訪問(wèn)的內(nèi)部對(duì)象[6]。H ttpContex類提供對(duì)整個(gè)當(dāng)前上下文(包括請(qǐng)求對(duì)象)的訪問(wèn),其中包括當(dāng)前用戶信息U ser的訪問(wèn),因此可以在需要對(duì)用戶的角色進(jìn)行判斷時(shí),使用代碼訪問(wèn) H ttpContext.U ser對(duì)象,由于其值為實(shí)例化的 Principal對(duì)象,則可以提取出當(dāng)前用戶的身份 (Identity屬性),并判斷其角色 (IsInRo le方法),再根據(jù)用戶的角色賦予相應(yīng)權(quán)限。
圖 5 基于主體對(duì)象的角色判斷示意圖
網(wǎng)絡(luò)課程平臺(tái)體系設(shè)計(jì)與實(shí)現(xiàn)按照3層構(gòu)架進(jìn)行:
數(shù)據(jù)層:包括系統(tǒng)各種數(shù)據(jù)表及對(duì)數(shù)據(jù)操作的存儲(chǔ)過(guò)程,還有使用ASP.NET數(shù)據(jù)控件寫成的通用數(shù)據(jù)訪問(wèn)接口。
業(yè)務(wù)層:根據(jù)面向?qū)ο笤O(shè)計(jì)(OOD)而得到的系統(tǒng)實(shí)體模型,使用面向?qū)ο笳Z(yǔ)言進(jìn)行具體編程(OOP),實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯功能。
表現(xiàn)層:為用戶呈現(xiàn)系統(tǒng)界面,通過(guò)界面調(diào)用業(yè)務(wù)層的接口。
這里主要論述用戶身份驗(yàn)證、角色判斷、權(quán)限賦予等部分。網(wǎng)絡(luò)課程平臺(tái)的角色與權(quán)限的實(shí)現(xiàn)依托上述ASP.NET安全機(jī)制,并根據(jù)網(wǎng)絡(luò)課程平臺(tái)的具體情況進(jìn)行了擴(kuò)展。
3.2.1 數(shù)據(jù)層中用戶、角色、課程表定義及它們的實(shí)體關(guān)系 用戶表 (user)記錄用戶 ID、用戶登錄名、用戶實(shí)名、角色 ID、所屬部門、聯(lián)系電話、電子郵件等用戶信息。角色表 (role)記錄角色 ID和角色名稱,角色名稱有:超級(jí)管理員 (SuperA dm in)、管理員(A dm in)、注冊(cè)用戶 (RegU ser,默認(rèn)為學(xué)生角色)、準(zhǔn)用戶 (PreU ser,已注冊(cè)、待審核通過(guò)為注冊(cè)用戶)、教師(Teacher)。用戶與角色通過(guò)角色 ID進(jìn)行關(guān)聯(lián)。課程表(course)記錄課程的相關(guān)信息,如課程 ID、課程名、課程英文名、課程類型、課程簡(jiǎn)介等。
課程主持人與課程教師角色不是全局性的,而是與課程相關(guān),例如:某教師在 A課程角色是課程主持人,而在 B課程則是教師等。因此,課程主持人與課程教師不宜在角色表中設(shè)置。課程主持人在課程中只有一位,可以將課程主持人設(shè)在課程表中,通過(guò)用戶 ID與用戶表關(guān)聯(lián)。
需要明確的是角色表中教師的角色與某門課程中的教師不一樣,如果一個(gè)用戶的角色是教師,只是說(shuō)明他具備教師資格(必要條件),但他是否是某門課程的教師,還要和課程發(fā)生關(guān)聯(lián)。一門課程可以有多個(gè)教師,一位教師也可以在多門課程內(nèi)任教。因此,教師與課程的關(guān)系是典型的多對(duì)多關(guān)系,使用用戶_課程表 (user_course)來(lái)表示這種關(guān)系,用戶_課程表記錄用戶登錄名與課程 ID。用戶、角色、課程關(guān)系如圖 6所示:
圖 6 用戶、角色、課程關(guān)系示意圖
從圖 6的設(shè)計(jì)中,可以使用下面查詢形式獲取某用戶作為主持人的課程 ID集合:
Select課程表.課程 ID FROM課程表W here(課程表.課程主持人 ID=@查詢值)
查詢用戶作為課程教師的課程 ID集合稍為復(fù)雜一點(diǎn),在確保用戶的角色是“教師”的前提下,在用戶_課程表中將該用戶關(guān)聯(lián)的課程 ID查詢出來(lái)。3.2.2 業(yè)務(wù)層中用戶對(duì)象的定義 業(yè)務(wù)層包含系統(tǒng)所有實(shí)體對(duì)象的編程實(shí)現(xiàn),和身份驗(yàn)證與角色判斷有關(guān)的主要是用戶對(duì)象(M ISU ser)。它封裝了用戶對(duì)象的屬性(對(duì)應(yīng)于用戶表字段),如用戶 ID、用戶登錄名、用戶實(shí)名、角色等,封裝的行為包括創(chuàng)建用戶、刪除用戶、獲取用戶詳細(xì)信息、修改用戶角色等。
3.2.3 Iden tity對(duì)象(標(biāo)識(shí)對(duì)象)的實(shí)現(xiàn) M y Identity對(duì)象實(shí)現(xiàn) IIdentity接口,根據(jù)網(wǎng)絡(luò)課程平臺(tái)的需要, M y Identity類中擴(kuò)充了原有的屬性:增加 Ro le屬性,以獲得當(dāng)前用戶的角色;增加 Fu llNam e屬性,以獲得當(dāng)前用戶的實(shí)名;還增加 CourseM asterL ist和 Course TeacherList,兩個(gè)屬性分別返回兩個(gè)數(shù)組:CourseM aster List[]和CourseTeacherL ist[],分別記錄當(dāng)前用戶擔(dān)任主持人的課程 ID和擔(dān)任教師的課程 ID。例如: courseM asterList[]包含 3個(gè)數(shù)組元素 courseM asterL ist [0]值為12,courseM asterL ist[1]值為17,courseM asterList [2]值為 30,則表示此用戶擔(dān)任 3門課程的主持人,課程 ID分別為 12、17和 30,當(dāng)用戶訪問(wèn)某門課程時(shí),根據(jù)此門課程的 ID是否存在于 cou rseM asterL ist []中就可以判斷用戶是否為課程主持人。
3.2.4 Pr inc ipa l對(duì)象(主體對(duì)象)的實(shí)現(xiàn) 主體對(duì)象M yPrincipal類以實(shí)現(xiàn) IPrincipal接口,IPrincipal接口包括M y Identity屬性及 IsInRole方法,M y Identity已在前面定義,IsInRo le方法實(shí)現(xiàn)當(dāng)前用戶角色的判斷。
IsCourseM aster(int thisCourse ID)函數(shù)實(shí)現(xiàn)用戶是否為課程主持人的判斷:以某門課程的 ID作為參數(shù),與 Context.User.courseMasterList屬性比較,如果參數(shù)的課程 ID存在于 courseM asterL ist數(shù)組中,則說(shuō)明該用戶是這門課程的主持人,反之則不是。IsCourse Teacher(int thisCourse ID)實(shí)現(xiàn)用戶是否為課程教師的判斷,其邏輯判斷與判斷課程主持人的一樣。
3.2.5 用戶身份驗(yàn)證、Pr inc ipa l對(duì)象實(shí)例化及上下文關(guān)聯(lián) 定義好M y Identity和M yPrincipal對(duì)象后,就可以進(jìn)行用戶身份驗(yàn)證、Principal對(duì)象實(shí)例化及上下文關(guān)聯(lián)。這在 Global.asax.cs文件中的App lication_ AuthenticateRequest事件中實(shí)現(xiàn),Global.asax.cs的App lication_AuthenticateRequest事件在每個(gè)請(qǐng)求時(shí)都會(huì)觸發(fā)該事件,在這個(gè)事件中允許為請(qǐng)求建立定制的身份驗(yàn)證。用戶的身份驗(yàn)證流程如圖 4所示,具體依據(jù)上述定義的M ISUser、M y Identity、M yPrincipal對(duì)象功能而實(shí)施。
3.2.6 角色的判斷與權(quán)限的賦予 在各個(gè)頁(yè)面的Page_Load事件中檢查 Context的 U ser的角色,以便根據(jù)U ser的角色顯示相應(yīng)的資源操作接口及界面。如果用戶是管理員,則賦予管理員的權(quán)限;如果用戶是課程主持人,則賦予課程主持人的權(quán)限。從而實(shí)現(xiàn)基于角色的權(quán)限控制。
上述角色及權(quán)限設(shè)計(jì)已經(jīng)完全實(shí)現(xiàn)并具體應(yīng)用在我校網(wǎng)絡(luò)課程平臺(tái)上。經(jīng)過(guò)近兩年的使用,系統(tǒng)性能穩(wěn)定,角色的設(shè)計(jì)與權(quán)限控制符合網(wǎng)絡(luò)課程建設(shè)、管理及教學(xué)的需要,普遍反映良好。相對(duì)于同類型的平臺(tái),上述設(shè)計(jì)與實(shí)現(xiàn)方法具有以下優(yōu)點(diǎn):
①角色設(shè)計(jì)符合教學(xué)實(shí)踐,適合網(wǎng)絡(luò)教學(xué)需要:我校醫(yī)學(xué)課程教學(xué)很多是大班教學(xué),由多個(gè)教師組成一個(gè)團(tuán)隊(duì),由教學(xué)組長(zhǎng)負(fù)責(zé)組織教學(xué)研究。平臺(tái)中課程主持人和教師角色正與之對(duì)應(yīng),系統(tǒng)管理員根據(jù)學(xué)科的需要給學(xué)科指定 1-2名管理員,管理員主要負(fù)責(zé)本學(xué)科課程的運(yùn)行維護(hù)管理,負(fù)責(zé)審核本學(xué)科教師開(kāi)設(shè)網(wǎng)絡(luò)課程的申請(qǐng),當(dāng)教師申請(qǐng)開(kāi)設(shè)的網(wǎng)絡(luò)課程獲得通過(guò)后,該名教師即獲得這門網(wǎng)絡(luò)課程的課程主持人角色,具有管理這門課程的最高權(quán)限,他可以組織課程的教學(xué)團(tuán)隊(duì),將教師用戶角色修改為該門課程的教師角色,這些教師具有該門課程的資源管理、組織、教師實(shí)施等權(quán)限,這些教師可能同時(shí)在幾門網(wǎng)絡(luò)課程內(nèi)授課,有效地解決了課程與教師的多對(duì)多關(guān)系,使教師能有效地利用網(wǎng)絡(luò)課程平臺(tái)分別有效地備課、實(shí)施教學(xué);
②提高用戶與角色管理效率:用戶的角色改變靈活方便,管理員只需在管理用戶的界面中將其角色一欄改變,用戶的權(quán)限就會(huì)發(fā)生改變。例如:在教學(xué)中,一些教授往往需要研究生助教,而研究生用戶是屬于學(xué)生角色,無(wú)法幫助教授進(jìn)行備課,這時(shí)管理員只需將研究生用戶的角色由學(xué)生暫時(shí)改為教師,研究生就具有備課與教學(xué)的權(quán)限,課程教學(xué)完成后,再將其角色由教師轉(zhuǎn)回學(xué)生;
③平臺(tái)健壯性強(qiáng):角色與權(quán)限判斷的實(shí)現(xiàn)是基于ASP.NET框架的 IIdentity接口及 IPrincipal接口,而ASP.NET是經(jīng)過(guò)嚴(yán)格測(cè)試的開(kāi)發(fā)與運(yùn)行環(huán)境,因此平臺(tái)的運(yùn)行的穩(wěn)定、流暢得到有效的保證;
④可擴(kuò)展性強(qiáng):由于實(shí)現(xiàn)角色與權(quán)限判斷功能的代碼是封裝于 IIdentity及 IPrincipal接口的派生類中,而這些派生類在平臺(tái)業(yè)務(wù)層中向外提供功能接口,因此在以后新開(kāi)發(fā)的功能模塊都可調(diào)用這些接口實(shí)現(xiàn)角色與權(quán)限的判斷,由此集中統(tǒng)一了用戶、角色與權(quán)限的管理;
⑤可維護(hù)性強(qiáng):角色與權(quán)限判斷的實(shí)現(xiàn)模塊擴(kuò)展了ASP.NET框架的 IIdentity接口及 IPrincipal接口,如對(duì)課程主持人和課程教師等非全局性角色的判斷。隨著后期平臺(tái)發(fā)展的進(jìn)一步需求,需修改角色與權(quán)限判斷模塊時(shí),只需修改派生于 IIdentity及 IPrincipal接口的類代碼,外層代碼與其他模塊不受影響;
⑥可移植性強(qiáng):當(dāng)開(kāi)發(fā)類似的平臺(tái)時(shí),無(wú)須重新開(kāi)發(fā)角色與權(quán)限判斷的代碼,只需將相應(yīng)的類文件包含在開(kāi)發(fā)項(xiàng)目中,一起編譯后,就可以直接使用角色與權(quán)限判斷的功能。
實(shí)踐證明,角色與權(quán)限的設(shè)計(jì)與實(shí)現(xiàn)對(duì)于網(wǎng)絡(luò)課程平臺(tái)開(kāi)發(fā)非常重要,是理解網(wǎng)絡(luò)課程平臺(tái)運(yùn)作的關(guān)鍵,是系統(tǒng)設(shè)計(jì)的起點(diǎn),通過(guò)對(duì)角色與權(quán)限的分析與設(shè)計(jì),分解網(wǎng)絡(luò)教學(xué)過(guò)程具體步驟,細(xì)化為實(shí)體對(duì)象的行為,從而構(gòu)筑起整個(gè)平臺(tái)的體系。具體的實(shí)現(xiàn)根據(jù)網(wǎng)絡(luò)課程需求擴(kuò)展了 ASP.NET框架的IIdentity接口及 IPrincipal接口,如對(duì)課程主持人和課程教師等非全局性角色的判斷等,對(duì)類似的平臺(tái)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)具有一定的參考意義。
[1]Christian Nagel,B ill Evjen,Jay Glynn.C#高級(jí)編程 [M].4版.北京:清華大學(xué)出版社,2006
[2]何克抗,李文光.教育技術(shù)學(xué) [M].北京:北京師范大學(xué)出版社,2002
[3]扈中平,李方,張俊洪.現(xiàn)代教育學(xué)[M].2版.北京:高等教育出版社,2005
[4]B ill Evjen,ScottHanselman,FarhanM uhammad,等.ASP.NET 2.0高級(jí)編程[M].4版.北京:清華大學(xué)出版社,2006
[5]M icrosoftCorporation,M icrosoftV isual Studio.net2003文檔象[EB/OL].主體和標(biāo)識(shí)對(duì)m s-help://MS.VSCC.2003/MS. MSDNQTR.2003FEB.2052/cpguide/htm l/cpconp rincipalidentity objects.htm.,2003/2009
[6]M icrosoft Corporation,M icrosoftV isual Studio.net2003文檔象[EB/OL].W eb窗體應(yīng)用程序中的頁(yè)和應(yīng)用程序上下文[EB/ OL].m s-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB. 2052/vbcon/htm l/vbconPageApp licationContext.htm,2003/2009
Design and rea liza tion of role and au thor iza tion in In ternet-based course in struction andm anagem en t p la tform
Ye Tao
(Cen ter of Educa tiona l Techno logy,Sou thern M ed ica lUniversity,Guangzhou 510515,China)
Ro le design and realization is the key to Internet-based course instruction and developm entofm anagem en t p latfo rm. It consists of ro le definition and descrip tion,i.e.,definition of system resource user’s identity authentication and descrip tion of relation between ro les. It em bodies the designer’s viewpointof construction,m anagem ent and instruction of Internet-based courses.The paper demonstrates the design and realization of ro le design and autho rization based on the p latform developm ent of a specific In ternet-based course. Itm ay serve as reference to the design and developm ent of o ther sim ilarp latform system s.
Internet-based course;p latfo rm developm ent;ro le
G434
A
:1004-5287(2010)01-0036-06
2009-09-07
葉濤 (1970-),男,廣東人,副教授,碩士,主要研究方向:網(wǎng)絡(luò)教學(xué)系統(tǒng)與資源的開(kāi)發(fā)與應(yīng)用。
中國(guó)醫(yī)學(xué)教育技術(shù)2010年1期