• 
    

    
    

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

      基于ASP.NET的成員資格管理框架及其教學(xué)方法研究

      2017-03-31 18:58:53梁瑞仕馬慧楊亮肖濤
      軟件導(dǎo)刊 2016年8期

      梁瑞仕+馬慧+楊亮+肖濤

      摘 要:成員資格管理是Web系統(tǒng)開發(fā)過程中極其重要的問題,是保證系統(tǒng)安全性的重要手段。成員資格管理主要包括用戶和角色定義、用戶驗(yàn)證和授權(quán)等內(nèi)容。研究了基于ASP.NET的成員資格管理框架體系,給出了典型的編程范例,并從課堂教學(xué)角度出發(fā),設(shè)計(jì)了一套基于類比法的教學(xué)方法及案例,適用于各級院校和培訓(xùn)機(jī)構(gòu)的現(xiàn)場教學(xué)使用。

      關(guān)鍵詞關(guān)鍵詞:ASP.NET;Web應(yīng)用系統(tǒng)安全;成員資格管理;類比教學(xué)法

      DOIDOI:10.11907/rjdk.161715

      中圖分類號:G434

      文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2016)008-0186-03

      0 引言

      保證系統(tǒng)安全性是Web應(yīng)用開發(fā)過程中的核心問題,而系統(tǒng)安全的關(guān)鍵問題是用戶及其權(quán)限控制,通常稱為成員資格管理(Membership Management),主要包括用戶和角色定義、用戶驗(yàn)證和授權(quán)等。

      ASP.NET是由微軟公司推出并被廣泛運(yùn)用于工業(yè)界的Web開發(fā)技術(shù)[1,2],它在用戶及安全管理方面有完整的解決方案。盡管工業(yè)界和學(xué)術(shù)界對于相關(guān)方面的論述[3,4],以及關(guān)于ASP.NET教學(xué)研究方面的文獻(xiàn)非常多[5],但很多材料容易陷入技術(shù)細(xì)節(jié)的闡述而忽略了對框架體系整體的介紹,不便于課堂教學(xué)使用。本文將從框架全貌的角度出發(fā)對基于ASP.NET的成員資格管理框架進(jìn)行介紹和總結(jié),并編寫了典型的編程范例。為了提高課堂教學(xué)效果,研究和借鑒了基于類比法的教學(xué)方法[6],并設(shè)計(jì)了用于理解成員資格管理核心概念的“訪問大學(xué)校園”類比教學(xué)案例。

      1 基于ASP.NET的成員資格管理框架結(jié)構(gòu)

      ASP.NET技術(shù)為實(shí)現(xiàn)成員資格管理提供了一整套解決方案,包括3個層級的技術(shù)方案(見圖1)。位于底層的是數(shù)據(jù)庫系統(tǒng)(默認(rèn)數(shù)據(jù)庫名稱為aspnetdb),可實(shí)現(xiàn)對成員資格數(shù)據(jù)進(jìn)行持久化存儲,包括用戶信息、角色信息、用戶偏好、登陸信息等;位于中間層的是.NET基礎(chǔ)類庫,主要是位于System.Web.Security 命名空間下的各種類和委托等,包括Membership、Roles、FormsAuthentication類等,提供包括新增/刪除/修改用戶和角色、表單驗(yàn)證等功能;位于上層的則是提供給開發(fā)者和管理員的幾種工具,包括網(wǎng)站管理工具、網(wǎng)站配置文件、登陸系列控件、高級程序設(shè)計(jì),用于在系統(tǒng)開發(fā)和管理過程中實(shí)現(xiàn)具體的成員資格管理任務(wù)。其中前2種工具以可視化向?qū)Х绞教峁┮恍┗镜木W(wǎng)站安全管理工具,主要面向網(wǎng)站管理員;后2種則通過可視化設(shè)計(jì)和手動編程方式實(shí)現(xiàn)完備的成員資格管理,主要面向Web系統(tǒng)開發(fā)者。

      網(wǎng)站管理工具適合網(wǎng)站管理員在服務(wù)器后臺小批量地添加用戶和角色,創(chuàng)建網(wǎng)站訪問規(guī)則,如為Web系統(tǒng)添加二級管理員、網(wǎng)站角色等,如圖2所示。

      網(wǎng)站配置文件用于保存網(wǎng)站的驗(yàn)證、授權(quán)、數(shù)據(jù)庫連接字符串等基本信息。例如,為了實(shí)現(xiàn)Forms身份驗(yàn)證,在配置文件的節(jié)點(diǎn)中間,寫入如下配置語句:

      以上語句實(shí)現(xiàn)了對網(wǎng)站的forms身份驗(yàn)證,當(dāng)驗(yàn)證通過時跳轉(zhuǎn)至默認(rèn)主頁,當(dāng)驗(yàn)證不通過時跳轉(zhuǎn)至登錄頁面。

      為了實(shí)現(xiàn)對網(wǎng)站根目錄的授權(quán)配置,在網(wǎng)站根目錄配置文件的節(jié)點(diǎn)中間,可寫入如下配置語句:

      以上配置語句使Web系統(tǒng)啟用了角色功能,并實(shí)現(xiàn)了對網(wǎng)站根目錄的授權(quán),即拒絕匿名用戶訪問,而運(yùn)行管理員角色訪問。

      2 典型編程范例

      本節(jié)展示了成員資格管理的典型操作和編程范例,此處選取注冊用戶、用戶登錄、用戶身份驗(yàn)證等3個典型操作進(jìn)行說明。

      2.1 注冊用戶典型代碼

      用戶注冊功能幾乎是每個Web系統(tǒng)的必備功能。ASP.NET提供了CreateUserWizard控件幫助開發(fā)者快速搭建登錄界面,并內(nèi)置默認(rèn)登錄邏輯,幫助開發(fā)者提高開發(fā)效率。當(dāng)然,對于大部分網(wǎng)站而言,該控件及內(nèi)置登錄邏輯有時并不能很好地滿足Web系統(tǒng)的個性化需求。因此,本節(jié)重點(diǎn)介紹了ASP.NET提供的注冊用戶相關(guān)功能類庫和典型使用方法。

      注冊用戶過程需要用戶在Web頁面輸入各種所需的注冊信息,然后將注冊信息傳入底層數(shù)據(jù)庫進(jìn)行身份判斷,進(jìn)而拒絕用戶注冊或完成用戶注冊過程。典型代碼如下:

      string username = "abc",password = "123abcd~";//此處表示用戶輸入的用戶名和密碼

      string email = "abc@abc.com",passwordQuestion = "abc",passwordAnswer = "abc";//此處表示注冊信息

      MembershipCreateStatus status; //用于函數(shù)的輸出參數(shù),不需賦值,指示用戶創(chuàng)建失敗原因

      MembershipUser user = Membership.GetUser(username); //從數(shù)據(jù)庫中讀取username的數(shù)據(jù)

      if (user == null) //如果用戶不存在

      {

      /*如果:①用戶名或密碼不符合網(wǎng)站要求;②網(wǎng)站要求提供Email、密碼問題和答案等信息,但調(diào)用函數(shù)時未提供或不符合要求,以上情形都會引發(fā)異常。編程實(shí)踐中最好將以下代碼放入try-catch塊中*/

      user = Membership.CreateUser(username,password,email,passwordQuestion,passwordAnswer,true,out status);

      if (user != null)

      Response.Write("");

      }

      else

      Response.Write("")

      2.2 用戶登錄及驗(yàn)證典型代碼

      用戶登陸過程中經(jīng)常涉及2個過程:驗(yàn)證和跳轉(zhuǎn)。驗(yàn)證過程是將輸入的用戶名和密碼傳入底層數(shù)據(jù)庫,由ASP.NET自動去aspnetdb數(shù)據(jù)庫進(jìn)行身份驗(yàn)證。根據(jù)驗(yàn)證結(jié)果,將確定將用戶轉(zhuǎn)入何種功能頁面,驗(yàn)證成功后則將用戶轉(zhuǎn)入相關(guān)頁面。典型的用戶登錄和驗(yàn)證代碼如下:

      string username = "abc",password = "123abcd~";//此處表示用戶輸入的用戶名和密碼

      bool isValidUser = Membership.ValidateUser(username,password);//執(zhí)行身份驗(yàn)證

      if(isValidUser) //驗(yàn)證通過,表示是合法存在的用戶

      {

      //跳轉(zhuǎn)回到上次的頁面或登陸頁面,將用戶名存儲在cookie中

      FormsAuthentication.RedirectFromLoginPage(username,true);

      }

      2.3 創(chuàng)建角色及添加用戶到角色典型代碼

      角色的目的是便于系統(tǒng)對于大量用戶提前進(jìn)行分類和管理,以提高用戶和授權(quán)管理效率。ASP.NET提供了非常便利的角色和用戶管理類庫,角色和用戶均以字符串形式名稱表示,非常方便開發(fā)者理解和使用。以下是創(chuàng)建角色以及將用戶添加到角色中的典型代碼演示:

      string taRole = "Teacher",stRole = "Student";//此處的Teacher、Student表示角色名稱

      string taUser = "Larry Page";//此處的Larry Page表示具體的用戶名稱

      string[]stUsers = new string[]{ "Mei H.","Lei L." };//此處Mei H.,Lei L.表示具體的用戶名稱

      //創(chuàng)建兩種新角色

      Roles.CreateRole(taRole);

      Roles.CreateRole(stRole);

      Roles.AddUserToRole(taUser,taRole);//添加單個用戶到角色中

      Roles.AddUsersToRole(stUsers,stRole);//添加多個用戶到角色中

      3 基于類比法的教學(xué)方法及案例研究

      對于一個Web應(yīng)用系統(tǒng),通常由很多功能模塊及其相應(yīng)資源組成,供各種網(wǎng)站成員有限制地訪問并提供服務(wù)。因此,Web應(yīng)用系統(tǒng)的安全管理可以直觀地理解為針對不同網(wǎng)站成員,設(shè)計(jì)不同權(quán)限,提供特定的網(wǎng)站服務(wù)。為了在課堂教學(xué)過程中使學(xué)生快速、準(zhǔn)確、完整地理解成員資格中的“驗(yàn)證”和“授權(quán)”2個核心概念,引入了類比教學(xué)法,并設(shè)計(jì)了一套貼近現(xiàn)實(shí)生活的“訪問大學(xué)校園”的典型教學(xué)案例。

      在一個典型的大學(xué)校園,有公共教學(xué)樓、圖書館、宿舍樓、實(shí)驗(yàn)室等,這些場所由于涉及公共設(shè)備或師生的私人財(cái)產(chǎn),都有嚴(yán)格的出入條件,如圖書館只能允許持有校園卡的師生進(jìn)入,宿舍樓只允許居住本棟的學(xué)生刷卡進(jìn)出等。此外還有門衛(wèi)保安專人把守的大學(xué)校門,負(fù)責(zé)維持出入校門的秩序并進(jìn)行登記管理。比如,任何人都應(yīng)出示合法證件進(jìn)入校園,對于非本校師生還要進(jìn)行額外的身份登記。實(shí)際上,大學(xué)校園相當(dāng)于一個典型的Web系統(tǒng),各種場所及其設(shè)施則相當(dāng)于Web系統(tǒng)的多種功能模塊及資源,對這些功能模塊及資源都有其自身的權(quán)限要求,如后臺系統(tǒng)一般只允許授權(quán)管理員訪問和登陸等。

      以上關(guān)于大學(xué)校園的安全管理可引出2個重要概念:驗(yàn)證和授權(quán)。校門衛(wèi)會對出入校園的行人進(jìn)行身份核實(shí),符合條件的行人可放行進(jìn)入校園,不符合條件且無法提供合理身份證明的行人將被拒絕進(jìn)入,這便是驗(yàn)證過程。一旦驗(yàn)證通過,行人便成為合法用戶進(jìn)入校園,理論上就具備了使用校園設(shè)施的前提條件。接下來,這些合法用戶可進(jìn)入校園的公共操場、花園等場所,一般這些地方都開放給任何進(jìn)入校園的人使用。但有些場所,如圖書館、教學(xué)樓、實(shí)驗(yàn)室等,需要用戶有相應(yīng)權(quán)限之后才可進(jìn)入,這便是授權(quán)過程。因此,學(xué)校會分配給教職工、學(xué)生、校友等不同的功能卡,以便其具有不同的權(quán)限進(jìn)入相應(yīng)場所,這種“授權(quán)”操作實(shí)現(xiàn)了對校園設(shè)施的安全管理。實(shí)際上,Web系統(tǒng)的功能模塊及其資源的使用也同樣存在驗(yàn)證和授權(quán)過程。對每個登錄Web系統(tǒng)的用戶,系統(tǒng)均會驗(yàn)證身份以確定其是否有資格訪問系統(tǒng),然后對驗(yàn)證通過的合法用戶,根據(jù)其授予的權(quán)限,給予相應(yīng)功能模塊及資源的訪問資格,以達(dá)到系統(tǒng)安全管理的目的。

      當(dāng)然,由于大學(xué)校園的師生眾多,為了便于管理,會將師生分類以角色的形式表現(xiàn),可大致分為幾種角色:教師、學(xué)生、職工、管理員等,從而使對大量用戶的授權(quán)管理簡化為對幾種角色的管理。實(shí)際上,Web系統(tǒng)也同樣運(yùn)用了角色的概念,授權(quán)首先是針對角色進(jìn)行,每種角色均有對應(yīng)權(quán)限。對于任何用戶,均可為其分配一種或多種角色,于是便相應(yīng)地授予該用戶一種或多種權(quán)限。

      本案例已成功運(yùn)用于本科教學(xué)課堂當(dāng)中,每位教師只需進(jìn)行簡單的學(xué)習(xí)培訓(xùn)便可掌握教學(xué)要點(diǎn),而學(xué)生能在課堂學(xué)習(xí)過程中非常容易地理解成員資格管理中的核心概念,有助于其下一步學(xué)習(xí)相關(guān)的理論知識和編程技巧。

      4 結(jié)語

      本文討論了基于ASP.NET的成員資格管理框架,給出了成員資格管理的框架體系結(jié)構(gòu)圖,介紹了各個層次的特點(diǎn),并給出了典型的編程案例。ASP.NET的用戶和角色管理功能完善,且提供了便利的登陸控件及完整的類庫供開發(fā)者使用,能滿足大部分Web系統(tǒng)的開發(fā)需求。此外,本文提出了基于類比法的教學(xué)思路和案例,并在本科教學(xué)課堂中進(jìn)行運(yùn)用。實(shí)踐表明,該教學(xué)方法可起到良好的教學(xué)效果。

      參考文獻(xiàn):

      [1]IMAR SPAANJAARS.Beginning ASP.NET 4.5:in C# and VB[M].Wiley,2012.

      [2]沈士根,汪承焱,許小東.Web程序設(shè)計(jì)——ASP.NET使用網(wǎng)站開發(fā)[M].第2版.北京:清華大學(xué)出版社,2014.

      [3]楊旺明.基于Asp.Net的權(quán)限系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2014(3):482-485.

      [4]趙強(qiáng),張紅忠.基于ASP.NET的網(wǎng)站系統(tǒng)安全性設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2008(S2):271-273,279.

      [5]楊亞菁.以項(xiàng)目實(shí)踐為導(dǎo)向的ASP.NET課程層次化教學(xué)研究[J].軟件導(dǎo)刊,2016,15(1):186-187.

      [6]梁瑞仕,曾荔枝,楊亮.類比教學(xué)法在本科計(jì)算機(jī)算法課程中的探索與實(shí)踐[J].現(xiàn)代計(jì)算機(jī),2013(8):46-47.

      (責(zé)任編輯:黃 ?。?

      资溪县| 阿图什市| 田林县| 海晏县| 阜阳市| 波密县| 岐山县| 滦南县| 和政县| 黎城县| 微山县| 花垣县| 刚察县| 泰和县| 治县。| 甘孜县| 都江堰市| 班戈县| 闻喜县| 河西区| 女性| 乌什县| 天柱县| 达州市| 五华县| 海南省| 峨山| 平昌县| 偃师市| 西丰县| 黄骅市| 澄江县| 开封县| 达孜县| 济宁市| 昌图县| 汝阳县| 黔西县| 长海县| 南澳县| 衡水市|