• 
    

    
    

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

      基于Web的校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)的實(shí)現(xiàn)

      2012-04-29 00:00:00孫守強(qiáng)
      中國新通信 2012年19期

      【摘要】本文提出了一個(gè)基于.NET Passport認(rèn)證機(jī)制的統(tǒng)一身份認(rèn)證系統(tǒng),本系統(tǒng)利用Windows 2003系統(tǒng)自帶的Active Directory組件建立目錄服務(wù)數(shù)據(jù)庫和SQLServer數(shù)據(jù)庫,實(shí)現(xiàn)用戶信息、組織架構(gòu)和角色的統(tǒng)一管理,利用.NET WebService技術(shù)實(shí)現(xiàn)用戶單點(diǎn)登錄,實(shí)現(xiàn)用戶統(tǒng)一身份認(rèn)證,為數(shù)字化校園建設(shè)提供了技術(shù)參考。

      【關(guān)鍵詞】統(tǒng)一認(rèn)證Active DirectoryWebServiceASP.NET單點(diǎn)登錄

      目前,數(shù)字化校園已成為建設(shè)現(xiàn)代化高校的建設(shè)目標(biāo)之一,基于校園網(wǎng)的應(yīng)用系統(tǒng)也越來越多,如數(shù)字化圖書館、一卡通系統(tǒng)、教務(wù)管理系統(tǒng)、校園網(wǎng)BBS系統(tǒng)等,在沒有統(tǒng)一身份管理的情況下,不同的業(yè)務(wù)系統(tǒng)需要各自維護(hù)一套用戶身份信息。對于普通用戶而言,需要對每個(gè)系統(tǒng)記憶一套登錄名和密碼。隨著系統(tǒng)數(shù)量增加,用戶必將通過降低密碼復(fù)雜度等為代價(jià)記住不同系統(tǒng)的登錄信息。一套統(tǒng)一的身份管理系統(tǒng)能夠讓IT集中精力,只要完善一套身份管理系統(tǒng)的維護(hù),就能提綱挈領(lǐng)統(tǒng)攬全局。

      1統(tǒng)一認(rèn)證框架設(shè)計(jì)

      本系統(tǒng)的框架采用.NET平臺進(jìn)行設(shè)計(jì),從邏輯角度上將系統(tǒng)框架分為:表示層、業(yè)務(wù)層、業(yè)務(wù)數(shù)據(jù)訪問層、數(shù)據(jù)訪問層,每層完成不同的功能,系統(tǒng)的邏輯框架設(shè)計(jì)如圖1所示。

      (1)管理界面使用ASP.NET實(shí)現(xiàn),管理員通過IE瀏覽器使用HTTP協(xié)議訪問管理站點(diǎn),實(shí)現(xiàn)用戶信息、部門信息和角色的統(tǒng)一管理。

      圖2統(tǒng)一認(rèn)證框架結(jié)構(gòu)圖

      (2)接口組件使用ASP.NET Web Services實(shí)現(xiàn),應(yīng)用系統(tǒng)通過SOAP協(xié)議與接口組件進(jìn)行交互,Web Services集成引擎通過各類接口和功能模塊將各應(yīng)用子系統(tǒng)封裝成Web Services部件后發(fā)布到UDDI注冊中心,并通過接口調(diào)用相應(yīng)的應(yīng)用服務(wù),實(shí)現(xiàn)系統(tǒng)的單點(diǎn)登錄和授權(quán)服務(wù)。

      (3)所有的功能組件,包括數(shù)據(jù)庫訪問組件和AD訪問組件,使用.NET平臺實(shí)現(xiàn),并作為程序集進(jìn)行發(fā)布。

      (4)SQLServer數(shù)據(jù)庫存儲權(quán)限信息和校內(nèi)用戶信息,Windows活動(dòng)目錄(AD)是整個(gè)統(tǒng)一身份認(rèn)證系統(tǒng)的基礎(chǔ),采用標(biāo)準(zhǔn)的LDAP目錄服務(wù)數(shù)據(jù)庫,以層次結(jié)構(gòu)、面向?qū)ο蟮臄?shù)據(jù)庫方式存儲校內(nèi)用戶信息和應(yīng)用系統(tǒng)信息,SQLServer數(shù)據(jù)庫和活動(dòng)目錄實(shí)現(xiàn)數(shù)據(jù)同步,保證了數(shù)據(jù)的一致性和完整性,為校園網(wǎng)的各類應(yīng)用系統(tǒng)提供用戶信息的共享和使用。

      (5)數(shù)據(jù)庫訪問組件通過ADO.NET與數(shù)據(jù)庫交互。AD訪問組件通過.NET的類庫使用LDAP協(xié)議與活動(dòng)目錄交互。

      2統(tǒng)一認(rèn)證的實(shí)現(xiàn)

      統(tǒng)一身份認(rèn)證平臺包含三大邏輯組成部分:目錄服務(wù)、用戶身份管理服務(wù)和用戶身份認(rèn)證服務(wù),統(tǒng)一認(rèn)證系統(tǒng)設(shè)計(jì)的核心是用戶身份認(rèn)證服務(wù),用目錄服務(wù)數(shù)據(jù)庫集中存儲用戶的信息和各個(gè)應(yīng)用系統(tǒng)的信息,實(shí)現(xiàn)對用戶的集中管理、統(tǒng)一認(rèn)證和統(tǒng)一授權(quán),以及實(shí)現(xiàn)對應(yīng)用系統(tǒng)的訪問控制。

      2.1目錄服務(wù)及用戶身份管理服務(wù)的實(shí)現(xiàn)

      目錄服務(wù)是一種特殊的數(shù)據(jù)庫系統(tǒng),可以存儲包括個(gè)人信息、web鏈結(jié)、jpeg圖像等各種更新頻率不大的信息。通過運(yùn)行在TCP/IP之上的訪問協(xié)議—LDAP(Lightweight Directory Access Protocol)輕型目錄訪問協(xié)議訪問Acitve Directory中的數(shù)據(jù)。

      1.目錄設(shè)計(jì)

      根據(jù)調(diào)研結(jié)果中的學(xué)院、行政機(jī)構(gòu)、中心等各種組織機(jī)構(gòu)及下級分支機(jī)構(gòu)、人員來構(gòu)建整個(gè)樹狀目錄。系統(tǒng)目錄設(shè)計(jì)按照以下原則進(jìn)行。

      (1)目錄的根目錄項(xiàng)為學(xué)校;

      (2)一個(gè)目錄項(xiàng)的子項(xiàng)為該目錄項(xiàng)的一個(gè)分支,具有該目錄項(xiàng)的所有屬性;

      (3)若某一目錄項(xiàng)是多個(gè)目錄項(xiàng)的下級分支可以選擇一個(gè)特定的目錄項(xiàng)存儲其屬性,其他相同目錄項(xiàng)則對其進(jìn)行引用。

      2.權(quán)限設(shè)計(jì)

      在設(shè)計(jì)目錄的同時(shí),也必須對其每個(gè)分支設(shè)計(jì)權(quán)限。通過分析應(yīng)用系統(tǒng)可以將用戶權(quán)限細(xì)分成精確的元權(quán)限,系統(tǒng)權(quán)限設(shè)計(jì)遵循以下原則。

      (1)將同一分支組織所有成員共有的元權(quán)限設(shè)置成組織權(quán)限;

      (2)其他特殊元權(quán)限,可以根據(jù)這些元權(quán)限來設(shè)計(jì)不同的虛擬角色;

      (3)根據(jù)應(yīng)用需要,可以將若干不同角色整合成新的虛擬組;

      (4)對于特定的人員,可以設(shè)置指定的元權(quán)限;

      (5)每一個(gè)成員的權(quán)限由指定的元權(quán)限、角色、組和組織權(quán)限4個(gè)部分組成,最后表現(xiàn)形式為元權(quán)限的組合。

      3.目錄服務(wù)部署與管理

      在完成系統(tǒng)的細(xì)節(jié)設(shè)計(jì)后,就可以按照設(shè)計(jì)思想在Active Directory上創(chuàng)建目錄,并部署和管理目錄服務(wù)。Active Directory自帶有一套目錄管理系統(tǒng),系統(tǒng)開發(fā)人員可以使用這套系統(tǒng)來管理目錄,也可以按照目錄服務(wù)的要求自行設(shè)計(jì)一套管理系統(tǒng),以便更好地滿足目錄管理的需求。

      .Net架構(gòu)對Active Directory提供了豐富的支持功能,其命名空間System.DirectoryServices包含的DirectoryEntry、DirectorySearcher等類庫可與任何Active Directory服務(wù)提供程序一起使用。

      本系統(tǒng)通過ASP.NET來實(shí)現(xiàn),采用C#語言,以下是通過ASP.NET實(shí)現(xiàn)的用戶驗(yàn)證的一段代碼。

      private string _path;

      private string _filterAttribute;

      public LdapAuthentication(string path)

      {

      _path = path;

      }

      public bool IsAuthenticated (string domain, string username, string pwd)

      {

      string domainAndUsername = domain + @\"\\" + username;

      DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);

      try

      {

      //結(jié)合本地adsobject強(qiáng)制認(rèn)證.

      object obj = entry.NativeObject;

      DirectorySearcher search = new DirectorySearcher(entry);

      search.Filter = \"(SAMAccountName=\" + username +\")\";

      search.PropertiesToLoad.Add(\"cn\");

      SearchResult result = search.FindOne( );

      if(1 == result)

      {

      return 1;

      }

      //更新的新路徑給用戶的目錄.

      _path = result.Path;

      _filterAttribute = (string)result.Properties[\"cn\"][0];

      }

      catch (Exception ex)

      {

      throw new Exception (\"用戶身份認(rèn)證錯(cuò)誤\" + ex. Message);

      }

      return true;

      }

      2.2用戶身份認(rèn)證服務(wù)的實(shí)現(xiàn)

      Web Services可以看成是部署在Internet上的API,它可以方便被應(yīng)用程序甚至其它Web Services集成和調(diào)用,形成新的應(yīng)用服務(wù)。具有完好的封裝性,松散耦合,高度可集成能力。WebServices技術(shù)是實(shí)現(xiàn)“軟件作為一種服務(wù)”的體現(xiàn)。本系統(tǒng)的身份認(rèn)證子模塊基于ASP.NET Web Service實(shí)現(xiàn),以下為參考代碼。

      1. Web服務(wù)的實(shí)現(xiàn)

      public class ValidateLoginService : System.Web.Services. WebService

      { public ValidateLoginService( )

      { InitializeComponent( );

      }

      [WebMethod(EnableSession = true)]

      public bool DoValidate (string domain, string username, string userpwd)

      { if (username != 1 userpwd != 1)

      { //判斷是否已經(jīng)有驗(yàn)證通過記錄

      if (Session[\"name\"] == 1)

      { //查找用戶名是否存在

      if (IsAuthenticated(domain, username, userpwd) == true)//調(diào)用身份認(rèn)證方法

      { Session[\"name\"] = true;//該用戶的驗(yàn)證記錄。避免下次再次驗(yàn)證。

      return true;

      }

      else

      { return 1;

      }

      }

      else

      { return true;

      }

      }

      else

      { return 1;

      }

      }

      }

      2.客戶程序登錄按鈕中WEB服務(wù)的調(diào)用

      string domain=this.TxtDomain.Text;

      string name = this.TxtName.Text;

      string password = this.TxtPwd.Text;

      //判斷用戶名跟密碼是否匹配

      ValidateLoginService v = new ValidateLoginService( );

      if (v.DoValidate(domain,name, password) == true)

      { //寫入Cookie代碼省略

      Session[\"name\"] = name;//登錄成功,并保存登錄姓名

      }

      else

      {//登錄失敗

      }

      3.客戶程序首頁P(yáng)age_Load中WEB服務(wù)的調(diào)用

      if(!IsPostBack)

      { //判斷Cookie是否存在,如果已存在則讀取

      ValidateLoginService v = new ValidateLoginService();

      if (v.DoValidate (cookieDomain,cookieName, cookiePassword) == true)

      {//用戶已經(jīng)登錄

      }

      else

      {//用戶未登錄

      }

      }

      3結(jié)論

      本文結(jié)合Windows活動(dòng)目錄(AD)和SQLServer數(shù)據(jù)庫技術(shù),利用微軟的.NET PassPort認(rèn)證機(jī)制,向應(yīng)用提供標(biāo)準(zhǔn)的SOAP服務(wù),為應(yīng)用的認(rèn)證提供通用的接口和認(rèn)證頁面,并調(diào)用后臺的WebService認(rèn)證技術(shù)實(shí)現(xiàn)用戶單點(diǎn)登錄,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Web的校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)。

      虞城县| 东兴市| 无棣县| 翁源县| 彰化市| 拜泉县| 和田县| 渭源县| 富裕县| 舞钢市| 瑞金市| 游戏| 正阳县| 绥棱县| 磐安县| 吴川市| 塔城市| 青岛市| 焦作市| 周口市| 安多县| 璧山县| 五家渠市| 永春县| 胶州市| 奉新县| 泰和县| 鹰潭市| 周至县| 宁远县| 斗六市| 莎车县| 诸暨市| 甘泉县| 金阳县| 临邑县| 襄汾县| 米脂县| 永德县| 桐乡市| 文水县|